use File::Find::Rule; ## GLOB my @files = find( file => maxdepth => 1, name => '_*_.txt', in => $directory ); ## REGEX my @files = find( file => maxdepth => 1, name => qr/_.+?_\.txt$/, in => $directory ); ## verbose my @files = File::Find::Rule->file() ->maxdepth(1) # do not recurse ->name( '_*_.txt', ) ->in( $directory ); ...