Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I managed to save a byte while golfing (unrelated, and sorry about stupid links), then wondered why did it work at all. With following SSCCE, the least level of consistency I'd expect is same output for both "for" cases, but hesitate to point which result of the two is correct and must be the same for them all, perhaps "1 2 2 2 1"?
use strict; use warnings; print "map\t"; 1 =~ /1/; map { print "$& "; 2 =~ /2/; print "$& "; } 0, 1; print "$&\n"; print "block\t"; my $n = 1; 1 =~ /1/; { print "$& "; 2 =~ /2/; print "$& "; redo if $n -- }; print "$&\n"; print "foreach\t"; 1 =~ /1/; for (0, 1) { print "$& "; 2 =~ /2/; print "$& "; } print "$&\n"; print "while\t"; my $m = 2; 1 =~ /1/; while ($m --) { print "$& "; 2 =~ /2/; print "$& "; }; print "$&\n"; print "for\t"; 1 =~ /1/; for (my $i = 0; $i <= 1; $i++) { print "$& "; 2 =~ /2/; print "$& "; } print "$&\n"; __END__ map 1 2 1 2 1 block 1 2 1 2 1 foreach 1 2 2 2 1 while 1 2 2 2 1 for 1 2 1 2 1
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Regexp vars localization in blocks
by hv (Prior) on Jul 26, 2023 at 11:06 UTC | |
|
Re: Regexp vars localization in blocks
by ikegami (Patriarch) on Jul 28, 2023 at 00:36 UTC | |
by Anonymous Monk on Jul 28, 2023 at 20:55 UTC | |
|
Re: Regexp vars localization in blocks
by Anonymous Monk on Jul 26, 2023 at 11:56 UTC |