use strict; my $calls = { A => \&print_A(), B => \&print_B(), }; my $test = 'A'; $calls->{$test}; sub print_A { print "\nA\n"; } sub print_B { print "\nB\n"; }