Hi Monks
I was wondering for thoughts from you about the new 'switch' feature in combination with loop control statements like 'last' and 'next'.
When I first used the 'switch' statement, within a loop, I was suprised by the behaviour when used in combination with the last statement. Without prior thought I programmed:
use feature "switch"; foreach $a (1..2) { for ($a) { when (1) {print "1\n"; last;} when (2) {print "2\n"; last;} } }
This prints:
1 2
instead what I expected (in my case, the 'when' blocks are containing loop termination conditions I wanted to check before doing some work in the foreach block):
1
The code is easily adapted for my intention:
use feature "switch"; LOOP: foreach $a (1..2) { for ($a) { when (1) {print "1\n"; last LOOP;} when (2) {print "2\n"; last LOOP;} } }
I was wondering if this behaviour was also for other monks puzzling. I didn't expected that the 'last' statement in the switch statements controlled the flow within the switch statement. It easily solved of course and clearly mentionned in the docs. My fault for not reading them throughly.
But did you expected this behaviour when you used this feature for the first time?
Kind regards
Martell
In reply to using the feature 'switch' in loops by martell
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |