> $aaa = $b[i] - $b[i+1];

単純に$のつけ忘れだろ。

まだmyも使えないようなレベルでいきなりuse strict使えというのは敷居が高いような
気もするが、せめてuse warningsだけでも使ってみれば、

Unquoted string "i" may clash with future reserved word at 〜

とか

Argument "i" isn't numeric in array element at 〜

といった警告が出てきて見当ついたんだけどね。