use strict; use utf8; use Encode qw/encode/; use Storable; use Win32::Unicode::Util; use Win32::Unicode::Native; opendir my $D, encode ( "cp1252" => "./Test/我/XX" ) or die $!; #OK print $/; my $path = "./Test/我/"; opendir my $D, $path or die $!; # OK my @files = readdir $D ; close $D; print "$_$/" foreach @files; print $/; $path .= "This.sto"; store { A => { Key => 'A' } }, $path or die $!; __END__ Outputs . .. XX 們 地 can't create ./Test/我/This.sto: Invalid argument at C:\....\open.pl line 18.