Here's a single pass through your @big array and should be fairly fast:
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.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'
Give a man a fish: <%-{-{-{-<
In reply to Re: Dependant Arrays intersection
by AnomalousMonk
in thread Dependant Arrays intersection
by simong
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |