in reply to match a portion of a string from a file

Can you provide samples of the input files? See Short, Self Contained, Correct Example on why we need them to help you.

($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,

Replies are listed 'Best First'.
Re^2: match a portion of a string from a file
by Anonymous Monk on Feb 11, 2018 at 22:36 UTC

    Sure here are 2 example files:

    file 1:

    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

      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,