use strict; use warnings; use vars qw($AUTOLOAD); my @q = (\&abc, \&def); my $msg; my $param = "hhhhhh"; foreach my $q (@q) { if (defined(&$q)) { $msg .= $q->($param); } else { my $name = $q->(); $msg .= "cannot call $name\n"; } } print $msg; sub abc { my $q = shift; return "hello from ABC($q)\n"; } sub AUTOLOAD { return $AUTOLOAD; }