my @files = grep -f, map "$_/vp.o$id", qw/archi1 archiv/; #### my @files = grep -f, map "$_/*vp.o$id", qw/ archiv/; #### #!/usr/bin/perl use strict; use warnings; my ($id) = @ARGV; my $fn2 = do { my @files = grep -f, map "$_/*vp.e$id", qw/ archiv/; print @files . " error files found\nless $files[0]\n" unless @files == 0; $files[0]; }; my $fn = do { my @files = grep -f, map "$_/*vp.o$id", qw/ archiv/; die @files . " matching files found" unless @files == 1; $files[0]; }; open my $fh, '<', $fn or die qq{Couldn't open "$fn" for reading: $!};