diff options
author | Father Chrysostomos <sprout@cpan.org> | 2012-07-07 23:46:52 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2012-09-15 22:45:00 -0700 |
commit | 7d2057d821be137073b284c6ce586dfd519fd13b (patch) | |
tree | dcc6fedbb5335378a38cc5631498fa882efd9719 | |
parent | b0305fa36f2ab4eebf4c0efdf7cfb2a4c20de12d (diff) | |
download | perl-7d2057d821be137073b284c6ce586dfd519fd13b.tar.gz |
‘Undefined subroutine &foo called’ for lex subs
instead of just ‘Undefined subroutine called’ without the name.
-rw-r--r-- | pp_hot.c | 6 | ||||
-rw-r--r-- | t/cmd/lexsub.t | 2 |
2 files changed, 5 insertions, 3 deletions
@@ -2625,8 +2625,12 @@ PP(pp_entersub) SV* sub_name; /* anonymous or undef'd function leaves us no recourse */ - if (CvANON(cv) || !(gv = CvGV(cv))) + if (CvANON(cv) || !(gv = CvGV(cv))) { + if (CvNAMED(cv)) + DIE(aTHX_ "Undefined subroutine &%"HEKf" called", + HEKfARG(CvNAME_HEK(cv))); DIE(aTHX_ "Undefined subroutine called"); + } /* autoloaded stub? */ if (cv != GvCV(gv)) { diff --git a/t/cmd/lexsub.t b/t/cmd/lexsub.t index e0289b1be8..de5db96949 100644 --- a/t/cmd/lexsub.t +++ b/t/cmd/lexsub.t @@ -132,9 +132,7 @@ is do foo(), 43, 'state sub falling out of scope (called via amper)'; } 44 } -::on; sb(1); -::off; sub sb2 { 43 } state sub sb2; sub sb2 { |