Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Passing Sub Values

by lidden (Curate)
on Mar 21, 2008 at 16:51 UTC ( #675465=note: print w/replies, xml ) Need Help??


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=\"pass.pl?tran=edit\">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=\"pass.pl?tran=\">back</a>\n"; }

Replies are listed 'Best First'.
Re^2: Passing Sub Values
by Anonymous Monk on Mar 21, 2008 at 16:57 UTC
    Almost, the values on the second sub should only show up after you click on the "Edit X" link on the sub first.
      Changing this,
      #my $tran = 'edit'; #param("tran"); my $tran = param("tran");

      works!
Re^2: Passing Sub Values
by Anonymous Monk on Mar 21, 2008 at 17:31 UTC
    There is a problem, when you run this it is also bringing the rest of the stuff from the first sub, the ideal thing would be to just print the values been passed from sub first like:  return ($arg_1,$arg_2,$val_3,$val_4); and what ever else is in the sub second.
      You seem confused about what is returned from a function and the stuff that is printed to the screen/browser. That said, if I understand you correctly you want something like the following, leave the second() function as above.
      if($tran eq 'edit'){ second(common($val_1, $val_2)); } else{ first(common($val_1, $val_2)); } sub common{ my $arg_1 = shift; my $arg_2 = shift; my $val_1 = "Tested"; my $val_2 = "Passed"; return ($arg_1,$arg_2,$val_1,$val_1); } sub first { my ($arg_1, $arg_2, $val_3, $val_4) = @_; print "I've got::: Val 1=$arg_1 and Val 2=$arg_2<br>\n"; print "<br>And I have::: Val 3=$val_3 and Val 4=$val_4<br>\n"; print "<br><a href=\"pass.pl?tran=edit\">Edit X</a>\n"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://675465]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2023-11-29 12:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?