Не используйте прагму use encoding
: она не работает.
Либо укажите здесь кодировку:
use open ":encoding(Latin1)";
, либо поместите ее в самом открытии:
open(FH, "< :encoding(Latin1)", $pathname)
|| die "can't open $pathname: $!";
или binmode
после открытия:
binmode(FH, ":encoding(Latin1)")
|| die "can't binmode to encoding Latin1";
Если вы используете <ARGV>
, тогда use open
, вероятно, самый простой.
Не забудьте установитькодировка в ваших выходных потоках тоже.