my %dispatch = ( 'sub_one' => \&sub_one, 'sub_two' => \&sub_two ); $dispatch{'sub_one'}('arg'); $dispatch{'sub_two'}('arg'); sub sub_one { $a = shift; print "Got to sub one: $a\n"; } sub sub_two { $a = shift; print "got to sub two $a\n"; }