... my $step = $cgi->param('step') || 0; my @functions = ( \&eins, \&zwei, &\drei ); { no warnings; $step = int $step; } $step = 0 if $step > 2; my $function = $functions[$step] or die "invalid $step"; my $hidden = $cgi->hidden( -name => 'step', -value => $step+1 ); $function->(); sub eins { # code von eins.cgi ... print $hidden; } sub zwei { # code von zwei.cgi ... print $hidden; } ...