#!/usr/local/bin/perl use warnings; use 5.012; use CGI; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); my $cgi = new CGI(); my $step = $cgi->param('step') // 0; my @functions = ( \&eins, \&zwei, \&drei ); my $function = $functions[$step] or die "invalid $step"; $function->(); sub eins { print $cgi->header(); print $cgi->start_html(); print $cgi->p('eins'); print $cgi->startform(); print $cgi->hidden( -name => 'step', -value => 1 ); print $cgi->submit( 'OK' ); print $cgi->endform(); print $cgi->end_html(); } sub zwei { print $cgi->header(); print $cgi->start_html(); print $cgi->p('zwei'); print $cgi->startform(); print $cgi->hidden( -name => 'step', -value => 2 ); print $cgi->submit( 'OK' ); print $cgi->endform(); print $cgi->end_html(); } sub drei { print $cgi->header(); print $cgi->start_html(); print $cgi->p('drei'); print $cgi->startform(); print $cgi->hidden( -name => 'step', -value => 0 ); print $cgi->submit( 'OK' ); print $cgi->endform(); print $cgi->end_html(); }