use strict; use warnings; use Data::Dumper; my @FuncList = qw(TestSub1 TestSub2); my %JumpTbl; foreach (@FuncList) { print "\$_=$_\n"; no strict 'refs'; $JumpTbl{$_} = \$_; } print Dumper(%JumpTbl); $JumpTbl{'TestSub2'}(); exit; sub TestSub1 { print "TestSub1\n"; } sub TestSub2 { print "TestSub2\n"; } #### $_=TestSub1 $_=TestSub2 $VAR1 = 'TestSub1'; $VAR2 = \'TestSub1'; $VAR3 = 'TestSub2'; $VAR4 = \'TestSub2'; Not a CODE reference at ./triv.pl line 22.