К сожалению, Perl очень плохо поддерживает Windows. В этом случае это частично связано с тем, что Perl считает имена файлов непрозрачными строками байтов, а не текстом. Таким образом, встроенные функции не используют вызовы интерфейса (W) ide, поэтому вы ограничены кодировкой "(A) NSI" вашей системы. На большинстве машин это cp1252.
Win32 :: FindFile предоставляет интерфейс для CreateDirectoryW
под именем CreateDirectory
.
#!/usr/bin/perl
use utf8;
use Win32::FindFile qw( CreateDirectory );
my $dir = 'H:\\Dolly. - 。.〆bear小熊-葉鏗然-ω·)~☆ぼんじ';
CreateDirectory($dir)
or die $^E;
Не проверено, но я бы удивился, если бы это не сработало.