Reno dermatologist,Melanoma treatment in Reno,Basal Cell treatment in
+Reno,Carcinoma treatment in Reno
file 2:
dermatologist, 1945 Bluelake Lane
dentist, 3 stars, office space
Both files above cvs files | [reply] [d/l] [select] |
It seems you want to search for terms from file2 in file1. I'm not sure why you are building the hash, but if you just want to search for all the elements of file2 in all the elements of file1, you can build a large regex from the second csv and use that to search the first one:
#!/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,
| [reply] [d/l] [select] |
| [reply] [d/l] [select] |