# First, determine where we are, using a default of "welcome" on error : my $page; if ($cgi->param("go_prev") and $cgi->param("prevpage")) { $page = $cgi->param("prevpage"); } else { $page = $cgi->param("nextpage"); }; if (! exists $pages{$page}) { $page = "welcome"; }; # Parameter validation ommitted, as it's simply a walk of the validation chain for every page ... # Execute the special code for this page, so all this searching had some sense : &{$pages{$page}};