use strict; use warnings; my @FuncList = qw(TestSub1 TestSub2); my @CallFunc = map { \&$_ } @FuncList; my %JumpTbl = map { $_ => \&$_ } @FuncList; $CallFunc[1](); $JumpTbl{'TestSub1'}(); exit; sub TestSub1 { print "TestSub1\n"; } sub TestSub2 { print "TestSub2\n"; } #### TestSub2 TestSub1