use strict; my ($f1,$f2); ($f1, $f2) = 'XaaXbbX' =~ /X(\w+)X(\w+)X/; print "\$1 = $1; \$2 = $2\n"; print "\$f1 = $f1; \$f2 = $f2\n"; ($f1, $f2) = 'XXX' =~ /X(\w+)X(\w+)X/; print "\$1 = $1; \$2 = $2\n"; print "\$f1 = $f1; \$f2 = $f2\n"; __END__ $1 = aa; $2 = bb $f1 = aa; $f2 = bb $1 = aa; $2 = bb $f1 = ; $f2 = #### use strict; my ($f1,$f2); $_ = 'XaaXbbX'; ($f1, $f2) = /X(\w+)X(\w+)X/; # first attempt print "\$1 = $1; \$2 = $2\n"; print "\$f1 = $f1; \$f2 = $f2\n"; $_ = 'XXX'; ($f1, $f2) = /X(\w+)X(\w+)X/; # first attempt print "\$1 = $1; \$2 = $2\n"; print "\$f1 = $f1; \$f2 = $f2\n"; __END__ $1 = aa; $2 = bb $f1 = aa; $f2 = bb $1 = XX; $2 = bb $f1 = ; $f2 = #### ($_ = "ABCD") =~ /(..)(..)/; print "$1, $2\n"; $_ = "WXYZ"; print "$1, $2\n"; __END__ AB, CD AB, CD #### () = ($_ = "ABCD") =~ /(..)(..)/; print "$1, $2\n"; $_ = "WXYZ"; print "$1, $2\n"; __END__ AB, CD WX, YZ