c:\@Work\Perl\monks>perl -wMstrict -le "use Data::Dumper qw(Dumper); ;; my @big = ('d:\1\1\1.txt', 'd:\1\1\2.txt', 'd:\1\1\3.txt', 'd:\1\1\4.txt'); ;; my @small = ('\1\2.txt', '\1\3.txt'); my ($has_some_small) = map qr{ $_ }xms, join q{ | }, map quotemeta, @small ; print $has_some_small; ;; my @inte = grep m{ $has_some_small \z }xms, @big; print Dumper \@inte; print qq{'$_'} for @inte; " (?^msx: \\1\\2\.txt | \\1\\3\.txt ) $VAR1 = [ 'd:\\1\\1\\2.txt', 'd:\\1\\1\\3.txt' ]; 'd:\1\1\2.txt' 'd:\1\1\3.txt'