in reply to print lines which are not reverse duplicates
It should become pretty clear why the match fails if you add one diagnostic print to display both the search pattern and the string to be searched in.
use strict; use warnings; while(<DATA>) { my $comment_author1; my $comment_author2; my $interactions; if( $_ =~ /(.*?),(.*?),(.*?)$/gm) { $comment_author1 = $1; $comment_author2 = $2; $interactions = $3; print "DEBUG: Looking for '$comment_author2,$comment_author1' in $ +_\n"; if( $_ =~ "$comment_author2,$comment_author1") { print "no match\n"; } else { print "$comment_author1,$comment_author2,$interactions\n"; } } } __DATA__ personA,personB,10 personB,personA,190 personA,personC,23 personA,personD,43 personE,personF,10
Do you see now where your logic has gone wrong? I think if you had used consistent indentation it might have been clear from the outset:
use strict; use warnings; while (<DATA>) { my $comment_author1; my $comment_author2; my $interactions; if ($_ =~ /(.*?),(.*?),(.*?)$/gm) { $comment_author1 = $1; $comment_author2 = $2; $interactions = $3; print "DEBUG: Looking for '$comment_author2,$comment_author1' +in $_\n"; if ($_ =~ "$comment_author2,$comment_author1") { print "no match\n"; } else { print "$comment_author1,$comment_author2,$interactions\n"; } } } __DATA__ personA,personB,10 personB,personA,190 personA,personC,23 personA,personD,43 personE,personF,10
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: print lines which are not reverse duplicates
by LanX (Saint) on Nov 25, 2018 at 13:23 UTC | |
|
Re^2: print lines which are not reverse duplicates
by 1nickt (Canon) on Nov 25, 2018 at 11:56 UTC | |
by hippo (Archbishop) on Nov 26, 2018 at 09:31 UTC | |
|
Re^2: print lines which are not reverse duplicates
by Maire (Scribe) on Nov 26, 2018 at 08:01 UTC |