#!/usr/bin/perl -- use strict; use warnings; use Data::Dump; use File::stat(); use Win32::Unicode::Native; # stat is statW, open is openW, ... for my $filename ( @ARGV ){ my $stat_obj = File::stat::populate( stat( $filename ) ); dd $filename, $stat_obj, { isdir => -d $stat_obj, isfile => -f $stat_obj }; } __END__ $ perl win32.unicode.stat.utf8.pl . win32.unicode.stat.utf8.pl ( ".", bless([3, 0, 16895, 1, 0, 0, 3, 0, 1344244307, 1344244307, 1156501803, "", ""], "File::stat"), { isdir => 1, isfile => "" }, ) ( "win32.unicode.stat.utf8.pl", bless([3, 0, 33206, 1, 0, 0, 3, 444, 1344244390, 1344244390, 1344244307, "", ""], "File::stat"), { isdir => "", isfile => 1 }, )