in reply to Passing Sub Values

I don't really know what it is you want, but perhaps something like this:
use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use strict; print header(); my $tran = 'edit'; #param("tran"); my $val_1 = "My Name"; my $val_2 = "Zip Code"; if($tran eq 'edit'){ second(first($val_1, $val_2)); } else{ first(); } sub first { my $arg_1 = shift; my $arg_2 = shift; print "I've got::: Val 1=$arg_1 and Val 2=$arg_2<br>\n"; my $val_3 = "Tested"; my $val_4 = "Passed"; print "<br>And I have::: Val 3=$val_3 and Val 4=$val_4<br>\n"; print "<br><a href=\"\">Edit X</a>\n"; return ($arg_1,$arg_2,$val_3,$val_4); } sub second { my $got_val_1 = $_[0]; my $got_val_2 = $_[1]; my $got_val_3 = $_[2]; my $got_val_4 = $_[3]; print "Got these from values from the sub first::: *$got_val_1* an +d *$got_val_2* and *$got_val_3* and *$got_val_4* - Done!!!<br>\n"; print "<a href=\"\">back</a>\n"; }