summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--op.c7
-rw-r--r--pp.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/op.c b/op.c
index 0cdeb92b28..3d5512683b 100644
--- a/op.c
+++ b/op.c
@@ -5520,6 +5520,13 @@ Perl_ck_fun(pTHX_ OP *o)
name = GvNAME(gv);
len = GvNAMELEN(gv);
}
+ else if (kid->op_type == OP_AELEM
+ || kid->op_type == OP_HELEM)
+ {
+ name = "__ANONIO__";
+ len = 10;
+ mod(kid,type);
+ }
if (name) {
SV *namesv;
targ = pad_alloc(OP_RV2GV, SVs_PADTMP);
diff --git a/pp.c b/pp.c
index 30476bd750..a59664e4d1 100644
--- a/pp.c
+++ b/pp.c
@@ -205,7 +205,7 @@ PP(pp_rv2gv)
if (SvROK(sv))
goto wasref;
}
- if (!SvOK(sv)) {
+ if (!SvOK(sv) && sv != &PL_sv_undef) {
/* If this is a 'my' scalar and flag is set then vivify
* NI-S 1999/05/07
*/