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
In reply to Re: print lines which are not reverse duplicates
by hippo
in thread print lines which are not reverse duplicates
by Maire
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |