http://www.perlmonks.org?node_id=984993


in reply to Deleting elements of one list using another

$ perl -le' use Data::Dumper; my @arr1 = ( "John, ABC, 42", "Jane, XYZ, 34", "Jessica, GHI, 21" ); my @arr2 = ( "ABC", "XYZ" ); my $pattern = join "|", @arr2; my @arr3 = grep /$pattern/, @arr1; print Dumper \@arr3; ' $VAR1 = [ 'John, ABC, 42', 'Jane, XYZ, 34' ];

Replies are listed 'Best First'.
Re^2: Deleting elements of one list using another
by suaveant (Parson) on Aug 02, 2012 at 13:39 UTC
    Right idea but you aren't using anything to anchor the pattern, so you would also match 'JohnABC, CDE, 14'
    @arr1 = ("0000007 | John | ABC.txt | 42","0000014 | Jane | XYZ.txt | 3 +4","0000017 | Jessica | GHI.txt | 21", etc); @arr2 = ('0000007', '0000014'); my $re = join('|',@arr2); my @arr3 = grep /^(?:$re)\s/, @arr1; print join("\n",@arr3),"\n";

                    - Ant
                    - Some of my best work - (1 2 3)