Perlプログラムでこういう記述があるわけだが間違っているのか?

$bankgold += 1000; &bankwrt;
(※ここでは$bankgoldに50000が代入されているとする)

$bankgoldという変数に1000を+し、&bankwrtを実行するというものなんだが。
しかし、これだと何故だか+した数値(1000)になってしまう。
俺の理想では$bankgold(50000)に+1000しているから51000になってほしいのだが、
なぜ、+した数値になるのかがわからん。

因みに&bankwrtの中身は

open(BANK,">********");
flock(BANK,2);
print BANK "$bankgold";
close(BANK);
}

このサブルーチンを実行すれば最新(その都度、代入された)$bankgoldが
*******ファイルに保存される。
(************は例で実際にはこうは書いていないです)