#!/usr/bin/perl -w
use strict;
use CGI qw/ header /;
my($cgi) = CGI->new();
print header, &get_form_page( $cgi->param('next page') || 'page 1' );
sub get_form_page { $cgi->delete('next page'); <<__OUTPUT__ }
Multi-Step Form Example
${\ &forms(@_) }
__OUTPUT__
sub preserve_previous { join '', map { eval <<'__PRESERVE__' } $cgi->param }
<<__HIDDEN__
__HIDDEN__
__PRESERVE__
sub forms { eval( {
'page 1' => <<'__HTML__',
<<__FORM__
Form Page One
__FORM__
__HTML__
'page 2' => <<'__HTML__',
<<__FORM__
Form Page Two
__FORM__
__HTML__
'page 3' => <<'__HTML__',
<<__FORM__
Form Page Three
__FORM__
__HTML__
'thank you' => <<'__HTML__',
<<__FORM__
All Done, Thank you ${\ ($cgi->param('Name')||'Anonymous person') }.
-
You are ${\ ($cgi->param('Age')||'0') } years old,
or so you say...
-
A ${\ ($cgi->param('MStatus')||'single') }
${\ ($cgi->param('Gender')||'eunuch') }
-
-and you expect me to believe you only weigh
${\ ($cgi->param('Weight')||'0') } lbs. and have an IQ of
${\ ($cgi->param('IQ')||'0') }.
__FORM__
__HTML__
}->{ shift(@_) || 'page 1' } )
}