Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^5: Print HTML form to file using CGI.pm save method

by Anonymous Monk
on Aug 04, 2012 at 10:36 UTC ( #985423=note: print w/ replies, xml ) Need Help??


in reply to Re^4: Print HTML form to file using CGI.pm save method
in thread Print HTML form to file using CGI.pm save method

But isn't it so that when you return a variable from a subroutine you return it to main scope only ?

No, you return it to the caller

Consider

sub sparaData { open (KOF, ">$konfil") or die "Kan inte \xF6ppna filen $konfil"; flock (KOF, 2) or die "Kan inte l\xE5sa filen $konfil"; $qry-> save (*KOF) or die "Kan inte spara filen $konfil"; close KOF; $size = -s $konfil; return; }

Its better written as

sub sparaData { my( $konfil, $qry ) = @_; open my($KOF), ">$konfil" or die "Kan inte \xF6ppna filen $konfil +"; flock $KOF, 2 or die "Kan inte l\xE5sa filen $konfil"; $qry-> save ( $KOF) or die "Kan inte spara filen $konfil"; close $KOF; my $size = -s $konfil; return $size; }

And use it as

my $qry = CGI->new; my $number = sparaData( "blah/blah/blah.data", $qry );
$qry and $qry are not the same variable, $size and $number are not the same variable -- they each respectively have the same value, but they live in different scopes

If you changed it to

my $roshambo = CGI->new; my $size = sparaData( "blah/blah/blah.data", $roshambo );
the new code would still work because you don't depend on global vars

See Tutorials: Variable Scoping in Perl: the basics, Coping with Scoping , Mini-Tutorial: Perl's Memory Management, Lexical scoping like a fox


Comment on Re^5: Print HTML form to file using CGI.pm save method
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2015-08-01 02:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls