http://qs1969.pair.com?node_id=1169089


in reply to Re^21: Addional "year" matching functionality in word matching script
in thread Addional "year" matching functionality in word matching script

What does this bit of the script do?  my @matches   = ( $value=~/\b$word\b/ig ); specifically the  \b  \b/ig bits?

Replies are listed 'Best First'.
Re^23: Addional "year" matching functionality in word matching script
by choroba (Cardinal) on Aug 03, 2016 at 16:02 UTC
    See perlre for explanation.

    \b matches "word boundaries", but in a special meaning of "word". /i makes the matching case insensitive, and /g makes it global, i.e. it matches as many times as it can, and returns all the matching substrings.

    ($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,
      Ok, i'm near the end of the script now. In this bit, I can see why the script prints out the line from $csv2, but I can't understand how it prints out the line from csv1. I can't see where it gets this information.
      if ($count >= $desired) { print "$csv2\n"; ++$matched; } } print "$_\n\n" if $matched;
      I can see the:
      print "$_\n\n" if $matched;
      bit somehow contains the information from csv1, but I can't see anything in the script which suggests why this would be?
        That's because
        while (<CSV1>) {

        in fact means

        while (defined( $_ = <CSV1> )) {
        ($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,