X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/5afd6d4225c4773e6506b9fc3c8ca61abeea89a5..07b8c804e887e8334910292dd4862f56c37dcb00:/pp_ctl.c diff --git a/pp_ctl.c b/pp_ctl.c index d461873..8432a15 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -1450,11 +1450,18 @@ PP(pp_caller) if (!MAXARG) RETURN; if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) { + GV *cvgv = CvGV(ccstack[cxix].blk_sub.cv); /* So is ccstack[dbcxix]. */ - sv = NEWSV(49, 0); - gv_efullname3(sv, CvGV(ccstack[cxix].blk_sub.cv), Nullch); - PUSHs(sv_2mortal(sv)); - PUSHs(sv_2mortal(newSViv((I32)cx->blk_sub.hasargs))); + if (isGV(cvgv)) { + sv = NEWSV(49, 0); + gv_efullname3(sv, cvgv, Nullch); + PUSHs(sv_2mortal(sv)); + PUSHs(sv_2mortal(newSViv((I32)cx->blk_sub.hasargs))); + } + else { + PUSHs(sv_2mortal(newSVpvn("(unknown)",9))); + PUSHs(sv_2mortal(newSViv(0))); + } } else { PUSHs(sv_2mortal(newSVpvn("(eval)",6)));