#define PL_sort_RealCmp (vTHX->Isort_RealCmp)
#define PL_sortcop (vTHX->Isortcop)
#define PL_sortstash (vTHX->Isortstash)
-#define PL_spare_510 (vTHX->Ispare_510)
#define PL_splitstr (vTHX->Isplitstr)
#define PL_srand_called (vTHX->Isrand_called)
#define PL_stack_base (vTHX->Istack_base)
#define PL_utf8_xdigit (vTHX->Iutf8_xdigit)
#define PL_utf8cache (vTHX->Iutf8cache)
#define PL_utf8locale (vTHX->Iutf8locale)
-#define PL_v_string_ok (vTHX->Iv_string_ok)
#define PL_warnhook (vTHX->Iwarnhook)
#define PL_watchaddr (vTHX->Iwatchaddr)
#define PL_watchok (vTHX->Iwatchok)
#define PL_Isort_RealCmp PL_sort_RealCmp
#define PL_Isortcop PL_sortcop
#define PL_Isortstash PL_sortstash
-#define PL_Ispare_510 PL_spare_510
#define PL_Isplitstr PL_splitstr
#define PL_Isrand_called PL_srand_called
#define PL_Istack_base PL_stack_base
#define PL_Iutf8_xdigit PL_utf8_xdigit
#define PL_Iutf8cache PL_utf8cache
#define PL_Iutf8locale PL_utf8locale
-#define PL_Iv_string_ok PL_v_string_ok
#define PL_Iwarnhook PL_warnhook
#define PL_Iwatchaddr PL_watchaddr
#define PL_Iwatchok PL_watchok
PERLVARI(Idumpindent, U16, 4) /* number of blanks per dump
indentation level */
-PERLVARI(Iv_string_ok, bool, FALSE) /* use/require v_string OK */
-
-/* This would be space for U8 here without increasing the structure size
- so name the space, so that the first post 5.10 need for a bool can use this
- rather than padding at the end. */
-
-PERLVARI(Ispare_510, bool, FALSE) /* */
+/* Space for U16 here without increasing the structure size */
PERLVARA(Icolors,6, char *) /* from regcomp.c */
PERLVARI(Islab_count, U32, 0) /* Size of the array */
#endif
-PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */
+PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */
/* If you are adding a U8 or U16, see the 'Space' comments above on where
* there are gaps which currently will be structure padding. */
#define PL_sortcop (*Perl_Isortcop_ptr(aTHX))
#undef PL_sortstash
#define PL_sortstash (*Perl_Isortstash_ptr(aTHX))
-#undef PL_spare_510
-#define PL_spare_510 (*Perl_Ispare_510_ptr(aTHX))
#undef PL_splitstr
#define PL_splitstr (*Perl_Isplitstr_ptr(aTHX))
#undef PL_srand_called
#define PL_utf8cache (*Perl_Iutf8cache_ptr(aTHX))
#undef PL_utf8locale
#define PL_utf8locale (*Perl_Iutf8locale_ptr(aTHX))
-#undef PL_v_string_ok
-#define PL_v_string_ok (*Perl_Iv_string_ok_ptr(aTHX))
#undef PL_warnhook
#define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX))
#undef PL_watchaddr
won't suddenly start understanding newer features, but at least
they will show a sensible error message indicating the required
minimum version.
-This warning is suppressed if the C<use 5.x.y> is preceded by a
-C<use 5.006> (see C<use VERSION> in L<perlfunc/use>).
=item Warning: something's wrong
versions of Perl that do not support this syntax. The equivalent numeric
version should be used instead.
-Alternatively, you can use a numeric version C<use 5.006> followed by a
-v-string version like C<use v5.10.1>, to avoid the unintuitive C<use
-5.010_001>. (older perl versions fail gracefully at the first C<use>,
-later perl versions understand the v-string syntax in the second).
-
use v5.6.1; # compile time version check
use 5.6.1; # ditto
use 5.006_001; # ditto; preferred for backwards compatibility
- use 5.006; use 5.6.1; # ditto, for compatibility and readability
This is often useful if you need to check the current Perl version before
C<use>ing library modules that have changed in incompatible ways from
sv = POPs;
if ( (SvNIOKp(sv) || SvVOK(sv)) && PL_op->op_type != OP_DOFILE) {
- if (!PL_v_string_ok &&
- SvVOK(sv) && ckWARN(WARN_PORTABLE) ) /* require v5.6.1 */
+ if ( SvVOK(sv) && ckWARN(WARN_PORTABLE) ) /* require v5.6.1 */
Perl_warner(aTHX_ packWARN(WARN_PORTABLE),
"v-string in use/require non-portable");
sv = new_version(sv);
- if (PL_compcv &&
- vcmp(sv, sv_2mortal(upg_version(newSVnv(5.006), FALSE))) >= 0)
- /* version 5.006 recognises 5.x.y in C<use 5.x.y> so
- can portably C<use 5.10.0> following C<use 5.006> */
- PL_v_string_ok = TRUE;
-
if (!sv_derived_from(PL_patchlevel, "version"))
upg_version(PL_patchlevel, TRUE);
if (cUNOP->op_first->op_type == OP_CONST && cUNOP->op_first->op_private & OPpCONST_NOVER) {
PTR2UV(PL_watchok));
}
- PL_v_string_ok = proto_perl->Iv_string_ok;
-
if (!(flags & CLONEf_KEEP_PTR_TABLE)) {
ptr_table_free(PL_ptr_table);
PL_ptr_table = NULL;
eval 'print $foo';
}
EXPECT
-########
-# pp_ctl.c
-use warnings;
-eval 'use 5.006; use 5.10.0';
-EXPECT