This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct err msg when calling stub w/no autoload fb
authorFather Chrysostomos <sprout@cpan.org>
Sun, 8 Jul 2012 06:39:07 +0000 (23:39 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 8 Jul 2012 07:24:11 +0000 (00:24 -0700)
commitc220e1a11e00efe060ea99925553cb1e03e3363a
tree09183cee50c75b20540fa4fad54eb5260aab0419
parent12f98b43fb8a44e8dfde5d99489b6a599bb91908
Correct err msg when calling stub w/no autoload fb

If an AUTOLOAD subroutine loads a sub by assigning to the glob, there
may be code elsewhere that has a reference to a stub, that is now
assigned over.  To cope with this situation, calls to undefined sub-
routines will fall back to whatever sub is in the subroutine’s owner
typeglob.  This has been the case since Perl 5.000.

But the error message that occurs if the typeglob happens to have no
sub in it is wrong:

$ perl -e '
   my $foosub = \&foo;
   undef *foo;
   &$foosub;
  '
Not a CODE reference at -e line 4.

as opposed to this:

$ perl -e '
   my $foosub = \&foo;
   &$foosub;
  '
Undefined subroutine &main::foo called at -e line 3.

They should both produce the same error message, because $foosub is a
code reference, albeit without a body.
MANIFEST
pp_hot.c
t/lib/croak/pp_hot [new file with mode: 0644]