#CGI stuff and parsing form here ... my $funct = param('funct'); #button user clicks my %action = ( 'Save News' => \&savenews, 'Add Book' => \&addbook, ); ( $action{$funct} || \&default )->(); sub savenews { print "save news\n"; } sub addbook { print "add book\n"; } sub default { print "not a choice\n"; }