my %actions = ( action1 => \&action1, action2 => \&action2, action3 => \&action3, ); my $action_sub = $actions{$action} or die("Unknown action $action\n"); $action_sub->(@ARGV);