I'm usually partial to this method. Of course, you might not like the fact that it searches @ISA for a class that contains the subroutine. Oh well.
#!/usr/bin/perl -w
use strict;
my %lists = (
'test1' => "stuff",
'test2' => "things",
'test3' => "whatever"
);
for my $i (keys %lists) {
my $sub = UNIVERSAL::can(__PACKAGE__,$i) || sub { warn "Couldn't cal
+l $i" };
&$sub;
}
sub test1 {
print "New message for test1\n";
}
sub test2 {
print "New message for test2\n";
}
__END__
New message for test1
Couldn't call test3 at - line 13.
New message for test2