Почему вы открываете каталог и ищете конкретное имя файла?Если вы хотите проверить, существует ли файл, просто проверьте его напрямую:
use File::Spec::Functions;
my $file = catfile( $test_case_directory, $xml_file_name );
if( -e $file ) { ... }
Однако, когда вы столкнетесь с такими проблемами, проверяйте результат на каждом шаге, чтобы проверить, что вы получаете.Ваш первый шаг будет разложить формулировку проблемы:
my @files = readdir DIR;
print "Files are [@files]\n";
my $filtered = grep { ... } @files;
print "Files are [$filtered]\n";
Как только вы это сделаете, вы увидите, что проблема grep
.Как только вы узнаете, что проблема grep
, вы прочитаете документацию, заметите, что используете ее неправильно, и вы сделали это раньше, чем нужно, чтобы опубликовать вопрос в StackOverflow.:)