June 2001 Making a Module Back Slide 54 Forward

Called Function Name

use vars qw ($AUTOLOAD);
sub AUTOLOAD
{
	my $name = $AUTOLOAD;
	$name =~ s/^.*:://;
	goto &Exporter::AUTOLOAD unless (exists $AUTOLOADABLE{$name});

	my $self = shift;
	if ($AUTOLOADABLE{$name} eq 'h') {
		return %{($self->{$name}	|| undef)};
	} elsif ($AUTOLOADABLE{$name} eq 's') {
		return $self->{$name}		|| undef;
	} else {
		return undef;
	}
}

  • $AUTOLOAD knows which method was called, with package name
  • Remove package name to get just the function name


Copyright © 2001 R. Geoffrey Avery Back Contents Forward