binmode STDOUT, ":utf8"; binmode STDERR, ":utf8"; #### use Encode; #### opendir( my $dir, "/usr/local/bin" ) or die "Can't read /usr/local/bin: $!\n"; while ( my $fname = decode( "utf8", readdir( $dir ))) { print $fname, "\n"; } #### #!/usr/bin/perl use strict; use warnings; use Encode; binmode STDOUT, ":utf8"; binmode STDERR, ":utf8"; open(my $find,"|-:utf8","find /usr/local/bin -type f") or die "Can't run find: $!\n"; while ( <$find> ) { print; }