On the following code, could someone explain me, why in the first match, the \1 reference, did not block the double quote from being considered part of $2 ?
#!/usr/bin/perl use strict; use warnings; my $line; print "\n"; $line = '<a href="http://www.mysite.com/" target="_blank">'; $line =~ /\shref=(["'])?([^\s\>\1]+)/; # FIRT MATCH if (defined $1) {print "\$1= $1\n";} else {print "1) not defined\n";} if (defined $2) {print "\$2= $2\n";} else {print "2) not defined\n";} print "\n"; $line =~ /\shref=(["'])?([^\s\>"']+)/; # SECOND MATCH if (defined $1) {print "\$1= $1\n";} else {print "1) not defined\n";} if (defined $2) {print "\$2= $2\n";} else {print "2) not defined\n";}
==Program Output
$1= "
$2= http://www.mysite.com/"
$1= "
$2= http://www.mysite.com/
In reply to Backreferences by OCTweak
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |