# $action_string is set to something or other. # actions is a hash whose keys are strings and whose values # are references to subroutines my %actions = ( 'display'=> \&show_values(), 'set'=> \&set_values(), 'default' => \&default() ); $action_string = 'default' unless defined($action{$action_string}); $action{$action_string}->(); # calls the subroutine that this hash value is a reference to sub set_values { # do something } sub show_values { # do something }