use strict; use warnings; my $fname = 'foo'; my $pkg = __PACKAGE__; if(my $code = $pkg->can($fname)){ $pkg->$code(1,2,3); } else{ die "No code for function '$fname'\n"; } sub foo{ print "this is sub foo in package 'main', args: @_\n"; }