3 ms·
In most of the OO languages I've used, declaring a variable in a loop header scopes it to the method, not the loop.
by mattmcknight 18y ago
In most of the OO languages I've used, declaring a variable in a loop header scopes it to the method, not the loop.
- SwellJoe 18y agofor my $a (1..2) { $b = 2; } print $a; Prints nothing. (Of course, with warnings or strict this complains about both $b and the second $a, as they're either never used or undefined.) Block scope is very nice. Maybe I don't use enough other OO languages to really grok why you'd want it any other way. What's the benefit to having method rather than block scope in such a context? I don't remember hating not having block scope in Python when I switched for about three or four years, but I didn't really use it in Perl at that point either, so I might miss it now that I do.