while ( my $file = readdir $dh ) { next if $file =~ /^\./ && ! $self->{show_hidden}; next if $file !~ /$filter_regex/; push @files, decode( 'locale_fs', $file ) if -f catdir $dir, $file; }