my %commands = ( command1 => { description => "Does something", function => sub { my $var = shift; print "var = $var\n"} }, ) my $cmd = 'command1'; $commands{$cmd}{function}($param)