Ich habe mal eben in der Doku nachgeschaut. Da steht:
QuoteCAVEATS
Perl does not have a concept of encoded filesystems yet. This means that operations on filenames like "opendir" and "open" still use byte semantics. Tk however uses character semantics internally, which means that you can get filenames with the UTF-8 flag set in functions like "chooseDirectory", "getOpenFile" and similar. It's the user's responsibility to determine the encoding of the underlying filesystem and convert the result into bytes, e.g.
use Encode;
...
my $dir = $mw->chooseDirectory;
$dir = encode("windows-1252", $dir);
opendir DIR, $dir or die $!;
Es ist also normal, dass man konvertieren muss. Nach deiner letzten Nachricht bin ich jetzt aber etwas ratlos, ob du das Problem noch hast oder ob alles geht.