# New Ticket Created by Doug Bell # Please include the string: [perl #122881] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=122881 > A coworker came to me with some questions about 'use VERSION' and how it enables strict and features. After a bunch of testing and a bit of confusion, we figured out the docs were slightly misleading. The docs say "Any explicit use of C<use strict> or C<no strict> overrides C<use VERSION>, even if it comes before it." but our tests say: perl -e'no strict "vars"; use 5.012; $foo' # lives because no strict overrides use VERSION as desired perl -e'use strict "refs"; use 5.012; $foo' # dies because use VERSION turned on the rest of strict The core tests (t/comp/use.t) confirm that this is expected behavior. The docs then say that "In both cases, the F<feature.pm> and F<strict.pm> files are not actually loaded." Though use VERSION does not load strict.pm or feature.pm, any explicit use of strict.pm or feature.pm (use or no) must load the files. use VERSION does not prevent strict.pm or feature.pm from getting loaded later. I've attached patches for these two things. Additionally, I got tripped up by the use of the word "strictures", since there is now a CPAN strictures.pm. The word is used about 20 times in core, so it's not much effort to change, but I'm not sure that core should change what it labels things because of CPAN. With approval, I could change it to just "strict", despite being ungrammatical in places. Alternatively, "strictness", though "strict" has the benefit of not being able to be taken by someone else on CPAN. Also, I'd like a hot pink bike shed.Thread Previous | Thread Next