http://www.perlmonks.org?node_id=935359


in reply to Re: no strict refs for blocks?
in thread no strict refs for blocks?

Thank you, this is the link I didn't find earlier.

The "no strict refs" is valid, but the additional "use strict refs" is a NOOP.

Replies are listed 'Best First'.
Re^3: no strict refs for blocks?
by bart (Canon) on Nov 02, 2011 at 11:48 UTC
    but the additional "use strict refs" is a NOOP.
    Actually, it would reenable strict for any code below in the remainder of the block. Here it is indeed not doing anything. Probably the person who wrote this snippet copy/pasted it from somewhere else without knowing why the "use strict" was there (typically known in the Perl world as "cargo culting"); or else, there might have been some code below it, which got deleted, and this just stuck.
      Or he couldn't remember whether strict was lexically scoped and so did the safe thing.
      The "safe" thing, or maybe, the "crystal clear" thing. Say what you mean, because you're talking not just to a compiler but to a human. Comment on why you've put the directive here, and then put a counter-directive in as soon as you no longer intend for the previous one to apply. Who really cares if the compiler does anything different in response to it or not ... your intentions are now clear.