use autodie; use List::MoreUtils qw/uniq/; open my $F1, $filename1; open my $F2, $filename2; my @files = unique map $_->[0], grep $_->[1] =~ /$variable/, (map [$filename1, $_] <$F1>), (map [$filename2, $_] <$F2>), ;