This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don't set strict for 'no 6;'
authorDavid Golden <dagolden@cpan.org>
Tue, 6 Jul 2010 04:33:31 +0000 (00:33 -0400)
committerDavid Golden <dagolden@cpan.org>
Tue, 6 Jul 2010 04:33:31 +0000 (00:33 -0400)
Commit faee19b51573e81abe8811f1256a1d27777d6d04 was incomplete
and only stopped features from being enabled under 'no'.

This patch merges all 'use N.NN' type logic into a single if clause
and then checks version numbers in separate if statements within it.

pp_ctl.c

index 1525789..912e934 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3365,21 +3365,20 @@ PP(pp_require)
        }
 
        /* We do this only with "use", not "require" or "no". */
-       if (PL_compcv &&
-               !(cUNOP->op_first->op_private & OPpCONST_NOVER) &&
-         /* If we request a version >= 5.9.5, load feature.pm with the
-          * feature bundle that corresponds to the required version. */
-               vcmp(sv, sv_2mortal(upg_version(newSVnv(5.009005), FALSE))) >= 0) {
-           SV *const importsv = vnormal(sv);
-           *SvPVX_mutable(importsv) = ':';
-           ENTER_with_name("load_feature");
-           Perl_load_module(aTHX_ 0, newSVpvs("feature"), NULL, importsv, NULL);
-           LEAVE_with_name("load_feature");
-       }
-       /* If a version >= 5.11.0 is requested, strictures are on by default! */
-       if (PL_compcv &&
-               vcmp(sv, sv_2mortal(upg_version(newSVnv(5.011000), FALSE))) >= 0) {
-           PL_hints |= (HINT_STRICT_REFS | HINT_STRICT_SUBS | HINT_STRICT_VARS);
+       if (PL_compcv && !(cUNOP->op_first->op_private & OPpCONST_NOVER)) {
+           /* If we request a version >= 5.9.5, load feature.pm with the
+            * feature bundle that corresponds to the required version. */
+           if (vcmp(sv, sv_2mortal(upg_version(newSVnv(5.009005), FALSE))) >= 0) {
+               SV *const importsv = vnormal(sv);
+               *SvPVX_mutable(importsv) = ':';
+               ENTER_with_name("load_feature");
+               Perl_load_module(aTHX_ 0, newSVpvs("feature"), NULL, importsv, NULL);
+               LEAVE_with_name("load_feature");
+           }
+           /* If a version >= 5.11.0 is requested, strictures are on by default! */
+           if (vcmp(sv, sv_2mortal(upg_version(newSVnv(5.011000), FALSE))) >= 0) {
+               PL_hints |= (HINT_STRICT_REFS | HINT_STRICT_SUBS | HINT_STRICT_VARS);
+           }
        }
 
        RETPUSHYES;