I am reading perlretut, and g modifier and zero width look ahead assertion(?=) is what I am reading now... This is good example for me.
use warnings;
use strict;
my $str1 = q/It is a guide to action which ensures that the military a
+lways obey the commands of the party./;
my $str2 = q/It is a guide to action that ensures that the military wi
+ll forever heed Party commands is a guide./;
my $n=0;
while ( $str1 =~ /(?=(\S+\s+\S+\s+\S+))/g ) {
#while ( $str1 =~ /(\S+\s+\S+\s+\S+)/g ) {
my $t1 = $1;
my $line="";
while ( $str2 =~ /($t1)/g ) {
$line .= $line eq '' ? '' : ',';
$line.="str=$t1, $1($-[0])";
$n++;
}
print "$line\n" if $str2 =~/$t1/;
}
print "No of matching is : $n\n";
|