my $name = "do"; sub do { print "I am doing it\n"; } &$name; #### my $name = "do"; sub do { print "I am doing this now\n"; } $name->(); #### $name = \& {"main::$name"}; &$name; #### sub foo { print "Doing foo (whatever that means)\n"; } sub bar { print "Now doing bar (isn't this fun?)\n"; } my %sub_table = ( 'foo' => \&foo, 'bar' => \&bar, ); foreach ( qw (foo bar foobar ) ) { $sub_table{$_}->(); }