У меня есть файл, расположенный в каталоге с датскими символами на машине Windows XP. Я использую Strawberry perl и хочу прочитать этот файл. Следующий код работает нормально:
use Win32::Unicode::File;
# Some code left out....
$fname = $mw -> getOpenFile(-filetypes=>$types);
my $fh = Win32::Unicode::File->new;
$fh->open('<', $fname);
Подпрограмма getOpenFile происходит от Tk. Теперь по какой-то причине Win32 :: Unicode :: File имеет некоторые нежелательные побочные эффекты, с которыми я не могу жить (он съедает мою память, см. «Недостаточно памяти» с простым циклом Win32 :: Unicode :: File readline и Strawberry Perl ). Теперь, если я попытаюсь открыть файл без интерфейса Win32 :: Unicode :: File, я получаю файл, который не найден. Причина этого в том, что путь интерпретируется неправильно. Я пробовал преобразовать путь в соответствии с Perl: управление кодировками путей в Windows , что по какой-то причине не работает. Как мне решить эту проблему? Я пробовал следующее:
use Encode;
# Some code left out....
$fname = $mw -> getOpenFile(-filetypes=>$types);
my $fh;
open($fh, '<', encode("utf8",$fname,Encode::FB_CROAK));
, но это не работает. Есть идеи?
Пожалуйста, простите меня, если я не понимаю.
С уважением, Майкл