my $Line_QC = "/full/directory/path"; opendir(DIR, "$Line_QC") or die $!; my @files_array = grep { /^35_/ && -f "$Nav_Line_QC/098/$_"} readdir(DIR); my $diag_file = quotemeta"@files_array[0]"; print "@diag_files_array[0]\n"; # prints: 35_Diag_098_a098@421424012017.txt print "$diag_file\n"; # prints: 35_Diag_098_a098\@421424012017\.txt open ( DIAG, "$diag_file" ) ||die ("Failed: $!"); while (my $line = ) { if ($line =~ /Line/) { print "$line\n"; }; }; # Close while loop close ( DIAG );