sub AUTOLOAD{ my $self = shift; my $fname = do{ our $AUTOLOAD =~ /(\w+)$/; $1; }; require "factory/$fname.pm"; return $self->can($fname) ? do{ my $code = $self->can($fname); $self->$code(@_); } : undef; } # Beispiel einer Methode use strict; use warnings; sub localtime{ my $self = shift; my $time = shift || time; my %hunt = (); my @fields = qw(sec min hour mday mon year wday yday isdst); @hunt{@fields} = localtime($time); $hunt{year} += 1900; $hunt{mon} += 1; return \%hunt; }; 1; # UNIT TEST use Data::Dumper; $, = "\n"; my $m = bless{}; print Dumper $m->localtime();