use strict; use warnings; use English qw( -no_match_vars ) ; use Data::Dumper; sub get_files_in_directory { my ( $dir, $filter ) = @_; opendir my $DIR, $dir or die "Can't open $dir: $OS_ERROR"; my @files = grep {/$filter/} readdir($DIR); closedir $DIR; return @files; } # print every file in tmp starting with 'N' print Dumper( get_files_in_directory( '/tmp', qr/^N/ ) );