Tuesday, April 30, 2013

Weird lacuna in Perl

While you can

$ perl -Mstrict -wle 'foreach our $var (0, 1) { print $var }'
0
1


and of course

$ perl -Mstrict -wle 'foreach my $var (0, 1) { print $var }'
0
1


foreach local raises an error:

$ perl -Mstrict -wle 'our $var; foreach local $var (0, 1) { print $var }'
syntax error at -e line 1, near "foreach local"
Execution of -e aborted due to compilation errors.


P. S. And in case you wonder what lacuna is.