#define PL_nomemok (PERL_GET_INTERP->Inomemok)
#define PL_nthreads (PERL_GET_INTERP->Inthreads)
#define PL_nthreads_cond (PERL_GET_INTERP->Inthreads_cond)
+#define PL_nullstash (PERL_GET_INTERP->Inullstash)
#define PL_numeric_local (PERL_GET_INTERP->Inumeric_local)
#define PL_numeric_name (PERL_GET_INTERP->Inumeric_name)
#define PL_numeric_radix (PERL_GET_INTERP->Inumeric_radix)
#define PL_nomemok (vTHX->Inomemok)
#define PL_nthreads (vTHX->Inthreads)
#define PL_nthreads_cond (vTHX->Inthreads_cond)
+#define PL_nullstash (vTHX->Inullstash)
#define PL_numeric_local (vTHX->Inumeric_local)
#define PL_numeric_name (vTHX->Inumeric_name)
#define PL_numeric_radix (vTHX->Inumeric_radix)
#define PL_nomemok (aTHXo->interp.Inomemok)
#define PL_nthreads (aTHXo->interp.Inthreads)
#define PL_nthreads_cond (aTHXo->interp.Inthreads_cond)
+#define PL_nullstash (aTHXo->interp.Inullstash)
#define PL_numeric_local (aTHXo->interp.Inumeric_local)
#define PL_numeric_name (aTHXo->interp.Inumeric_name)
#define PL_numeric_radix (aTHXo->interp.Inumeric_radix)
#define PL_Inomemok PL_nomemok
#define PL_Inthreads PL_nthreads
#define PL_Inthreads_cond PL_nthreads_cond
+#define PL_Inullstash PL_nullstash
#define PL_Inumeric_local PL_numeric_local
#define PL_Inumeric_name PL_numeric_name
#define PL_Inumeric_radix PL_numeric_radix
I32 len;
register const char *namend;
HV *stash = 0;
- U32 add_gvflags = 0;
if (*name == '*' && isALPHA(name[1])) /* accidental stringify on a GV? */
name++;
: sv_type == SVt_PVAV ? "@"
: sv_type == SVt_PVHV ? "%"
: ""), name));
+ stash = PL_nullstash;
}
- return Nullgv;
+ else
+ return Nullgv;
}
if (!SvREFCNT(stash)) /* symbol table under destruction */
Perl_warner(aTHX_ WARN_INTERNAL, "Had to create %s unexpectedly", nambeg);
gv_init(gv, stash, name, len, add & GV_ADDMULTI);
gv_init_sv(gv, sv_type);
- GvFLAGS(gv) |= add_gvflags;
if (isLEXWARN_on && isALPHA(name[0]) && ! ckWARN(WARN_ONCE))
GvMULTI_on(gv) ;
#if defined(USE_ITHREADS)
PERLVAR(Iptr_table, PTR_TBL_t*)
#endif
+
+PERLVAR(Inullstash, HV *) /* illegal symbols end up here */
CopSTASH_set(&PL_compiling, PL_defstash);
PL_debstash = GvHV(gv_fetchpv("DB::", GV_ADDMULTI, SVt_PVHV));
PL_globalstash = GvHV(gv_fetchpv("CORE::GLOBAL::", GV_ADDMULTI, SVt_PVHV));
+ PL_nullstash = GvHV(gv_fetchpv("<none>::", GV_ADDMULTI, SVt_PVHV));
/* We must init $/ before switches are processed. */
sv_setpvn(get_sv("/", TRUE), "\n", 1);
}
#define PL_nthreads (*Perl_Inthreads_ptr(aTHXo))
#undef PL_nthreads_cond
#define PL_nthreads_cond (*Perl_Inthreads_cond_ptr(aTHXo))
+#undef PL_nullstash
+#define PL_nullstash (*Perl_Inullstash_ptr(aTHXo))
#undef PL_numeric_local
#define PL_numeric_local (*Perl_Inumeric_local_ptr(aTHXo))
#undef PL_numeric_name
# strict vars - error
use strict 'vars' ;
-$fred ;
+<$fred> ;
EXPECT
Global symbol "$fred" requires explicit package name at - line 4.
Execution of - aborted due to compilation errors.