in reply to Dependant Arrays intersection

Here's a single pass through your  @big array and should be fairly fast:

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'
As a beginner, always  use warnings; and  use strict; at the start of your scripts. See warnings and strict. Data::Dumper is core, so you should have it; it's a great aid to debugging. Please see perlre, perlretut, and perlrequick for regex info.


Give a man a fish:  <%-{-{-{-<