Dan Muey wrote:
> Howdy all.
>
> I have the need to turn off strict refs for one line.
> I want to make sure strict refs is back on afterward.
>
> if(...) {
> no strict 'refs';
> ...use refs here...
> use strict 'refs';
> }
>
> Is that how I turn them back on or ???
> (I think all 'use's get done before anything else so it would be pointless to have
> it there? )
>
> Or does the no strict 'refs' apply only within it's own block so after I'm out of
> that if{} statement strict refs are back on?
Hi Dan.
'Yes' to your last sentence. Has anybody said that yet?
The use/no for a pragma applies only to its containing
block (or file). (It's very non-Perl to explain why, so I
won't.) Check out
use strict;
our $a = 99;
my $n = 'a';
{
no strict 'refs';
print $$n, "\n";
}
print $$n, "\n";
will error only on the second 'print' statement. It's
immaterial whether the block is controlled by an 'if',
'while', 'for' etc.
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]