Make sure you're not doing:
use CGI; my $cgi = new CGI; if ($cgi->param("dataaction") eq "whatever") { &do_whatever_without_passing_cgi(); } elsif ($cgi->param("dataaction") eq "passcgi") { &pass_it_cgi($cgi); } sub do_whatever_without_passing_cgi { #using original copy of $cgi object for life here my $notshared = $cgi->param("crufty"); print "Crufty $notshared variable\n"; } sub pass_it_cgi { my $cgi = shift; my $goodvar= $cgi->param('notcrufty'); print "Passed it and got a $goodvar\n"; } >>>In the script in question params are read like so: >>>use CGI; >>>$cgi = new CGI; >>>if ($cgi->param("dataaction") eq "whatever") { >>> # Does something useful HTH, check the guide: http://perl.apache.org/guide/porting.html. -- -- Daniel Bohling NewsFactor Network