use strict; my $folder="."; my $file_mask="\.txt"; my $file; opendir(DIR, "$folder"); my @files =grep(/$file_mask$/,readdir(DIR)); closedir(DIR); foreach $file (@files) { print "$file\n"; # Finds a file called 1txt (WHY) } opendir(DIR, "$folder"); @files =grep(/\.txt$/,readdir(DIR)); closedir(DIR); foreach $file (@files) { print "$file\n"; # Does not find the file called 1txt (As expected) }