in reply to Memory issue with large array comparison
It will not work if you have to check if the ID is *somewhere* mentioned in the filepath.
Still you do not have to despair! Nor do you have to check each filepath against each ID with a separate regex (which would be very slow).
Through the magic of Regexp::Assemble it only takes a program of a few lines:
use Modern::Perl; use Regexp::Assemble; use autodie; open my $PATTERNS, '<', './patterns.txt'; my $re_pattern = Regexp::Assemble->new->add(<$PATTERNS>)->re; close $PATTERNS; open my $PATHS, '<', './paths.txt'; do {print unless /$re_pattern/} while <$PATHS>; close $PATHS;
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
My blog: Imperial Deltronics
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Memory issue with large array comparison
by aaron_baugher (Curate) on May 25, 2012 at 13:54 UTC |