#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use autodie; use Text::CSV; sub build_regex { my ($filename) = @_; my @regexes; my $csv = 'Text::CSV'->new; open my $fh, '<', $filename; while (my $row = $csv->getline($fh)) { push @regexes, join '|', map quotemeta, @$row; } return join '|', @regexes } sub find_matches { my ($filename, $regex) = @_; my $csv = 'Text::CSV'->new; open my $fh, '<', $filename; while (my $row = $csv->getline($fh)) { /$regex/ and say for @$row; } } my ($f1, $f2) = qw( 1.csv 2.csv ); find_matches($f1, build_regex($f2)); #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,