)
Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
"Use of inherited AUTOLOAD for non-method %" SVf
- "::%" UTF8f "() is deprecated",
+ "::%" UTF8f "() is deprecated. This will be "
+ "fatal in Perl 5.28",
SVfARG(packname),
UTF8fARG(is_utf8, len, name));
name_cursor++;
*name = name_cursor+1;
if (*name == name_end) {
- if (!*gv)
- *gv = MUTABLE_GV(*hv_fetchs(PL_defstash, "main::", TRUE));
+ if (!*gv) {
+ *gv = MUTABLE_GV(*hv_fetchs(PL_defstash, "main::", TRUE));
+ if (SvTYPE(*gv) != SVt_PVGV) {
+ gv_init_pvn(*gv, PL_defstash, "main::", 6,
+ GV_ADDMULTI);
+ GvHV(*gv) =
+ MUTABLE_HV(SvREFCNT_inc_simple(PL_defstash));
+ }
+ }
return TRUE;
}
}
SvREADONLY_on(av);
}
break;
+ case '*': /* $* */
+ case '#': /* $# */
+ if (sv_type == SVt_PV)
+ /* diag_listed_as: $* is no longer supported. Its use will be fatal in Perl 5.30 */
+ Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX),
+ "$%c is no longer supported. Its use "
+ "will be fatal in Perl 5.30", *name);
+ break;
case '\010': /* $^H */
{
HV *const hv = GvHVn(gv);
require_tie_mod_s(gv, '!', "Errno", 1);
else if (*name == '-' || *name == '+')
require_tie_mod_s(gv, *name, "Tie::Hash::NamedCapture", 0);
+ } else if (sv_type == SVt_PV) {
+ if (*name == '*' || *name == '#') {
+ /* diag_listed_as: $# is no longer supported. Its use will be fatal in Perl 5.30 */
+ Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED,
+ WARN_SYNTAX),
+ "$%c is no longer supported. Its use "
+ "will be fatal in Perl 5.30", *name);
+ }
}
if (sv_type==SVt_PV || sv_type==SVt_PVGV) {
switch (*name) {