Вам необходимо убедиться, что выходные дескрипторы файлов открыты в правильной кодировке.
Если коротко взглянуть на документы, не похоже, что у Меха есть настраиваемые кодировки для сохраненных файлов, поэтому вы можете получить содержимое и сохранить его самостоятельно:
$mech->get( $link );
my $content = $mech->content;
open my $fh, '>:utf8', $file or die "$file: $!";
print $fh $content;
Бит :utf8
в open
гарантирует, что данные, отправляемые на файловый дескриптор, кодируются должным образом как UTF-8.
Другой способ сделать это - кодировать вручную:
use Encode;
my $content = encode 'utf8', $mech->content;
open my $fh, '>', $file or die "$file: $!";
binmode $fh;
print $fh $content;