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? )
You can turn it back on like that. "use" happens at compile-time, but strict checking also happens at compile-time, so it all works out correctly (with some help from the magcial behavior of the special $^H variable). > > 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? Yes, that's true as well. (It's documented under perldoc perlvar, search for $^H) Sometimes you want to localize the action to just the right-side of an assignment. For example: use strict; our $bar = 1; my $ref = 'bar'; my $foo = $$ref; # error: symbolic reference You can do that with: my $foo = do { no strict 'refs'; $$ref }; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]