in reply to Prohibiting redeclaration of lexicals in inner scope
in thread Prohibiting redeclaration of lexicals in inner scope

"I cannot imagine a case where I personally would want to use this language feature ..."

Well, for one, this feature is extremely useful when 'slurping' an entire file into a scalar. To do this, you must set $/ to an undefined value, but doing that could break client code. By only 'reseting' that variable inside a 'bare block', you guarantee that you will not break someone's client code that might use yours. In action, instead of using:

my $data; while (<FILE>) { $data .= $_; }
I can safely 'turn off' $/ temporarily via local:
my $data = do {local $/ = undef;<FILE>}; # $/ contains it's original value (\n) now
But ... i have been coding Perl for a good solid 4 years now. Your milleage may (and will) vary. I hope you decide to stick around, because we have lots of useful information for you. We just sometimes have to question why someone would even want to do something like this, that's all. :)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)