in reply to oop - obvious AUTOLOAD question
It will be defined in __PACKAGE__ - the current package.
update: The normal behaviour would be to define the method in the current object's namespace, but you are overriding this with s/^.*:://.
update: see rir explanation below, then come back to this example.
An example:
package One; sub AUTOLOAD { my $name = $AUTOLOAD; $name =~ s/^.*:://; *$name = sub { print "called $name inside ",__PACKAGE__,"\n" }; goto &$name; } package Two; @ISA = qw(One); package Main; One->try1(); Two->try2(); $a = bless {}, Two; $a->try3();
output:
called try1 inside One called try2 inside One called try3 inside One called DESTROY inside One
update: more interesting example
|
|---|