#!/usr/bin/perl -- use strict; use warnings; use Win32::Unicode -native; listDir(); open my($fh), '>:encoding(UTF-8)', qq{I-\x{2665}-Perl} or die $!; print $fh qq{I-\x{2665}-Perl}; close $fh; listDir(); rename qq{I-\x{2665}-Perl}, 'I-love-Perl'; listDir(); unlink 'I-love-Perl'; sub listDir { my( $dir ) = grep defined, @_, '.'; my $wdir = Win32::Unicode::Dir->new( ); $wdir->open($dir) or die $!; for ($wdir->fetch) { next if /^\.{1,2}$/; my $full_path = "$dir/$_"; if (file_type('f', $full_path)) { print "f $_\n"; } elsif (file_type('d', $full_path)){ print "d $_\n"; } } $wdir->close or die $!; print "\n####\n\n"; } __END__