utf8 はたしかに使いづらいよ。現に >>545 のようなバカが沸いてきてるし。
誰も >>545 の謎が解けないようだから代わりにオレがバカの相手をしてやる。
いいか、正解は、こうだ。日本語にはすべて encode("cp932",○○) をつける。

use utf8;
use Encode qw(encode);

open FILE, "<:encoding(cp932)", encode("cp932","月間売上表.txt") or die;
@data = <FILE>;
close FILE;

foreach (@data) { $_ = "(済)" . $_ } # テキトーにデータ加工処理

if (-f encode("cp932","月間売上表.bak")) { unlink encode("cp932","月間売上表.bak") or die } # ここ
rename encode("cp932","月間売上表.txt"), encode("cp932","月間売上表.bak") or die; # ここ

open FILE, ">:encoding(cp932)", encode("cp932","月間売上表.txt") or die;
print FILE @data;
close FILE;

print encode("cp932","月間売上表.txt を更新しました。\n");

どうだ、cp932 だらけのすばらしいコードだろ?実にゲージュツ的だ。惚れ惚れするね。
これを業界では 「encode cp932 地獄」と言う。割と有名なハナシだ。良く覚えておけ。