<html>
<body>
This seems to work too:-<br><br>
<tt>#!/usr/bin/perl<br><br>
use strict;<br><br>
my $num = 3;<br><br>
print "$num\n";<br><br>
double($num);<br><br>
print "$num\n"; # 6 expected<br><br>
#------------------------#<br><br>
sub double<br>
{<br>
$_[0] *= 2;<br>
}<br><br>
<br><br>
</tt>At 2004/01/09 10:04 AM, Sean Carte wrote:<br>
<blockquote type=cite class=cite cite>On Fri, 2004-01-09 at 08:58, Spike
wrote:<br>
> Hi All<br>
> <br>
> First query of the year!<br><br>
First answer of the year!<br><br>
> <br>
> If I have a function (sub routine) like :<br>
> <br>
> sub double {<br>
> my $num = shift;<br>
> return $num * 2;<br>
> }<br>
> <br>
> I could say:<br>
> <br>
> $value = 3;<br>
> $value = double($value);<br>
> print "$value\n"; # 6 expected<br>
> <br>
> My question is how could I write that function so that it
works<br>
> directly on the variable that is passed to it in the same way
that<br>
> functions like chomp do?<br>
> <br>
> $value = 3;<br>
> double($value);<br>
> print "$value\n"; # 6 expected<br>
> <br><br>
Use references:<br><br>
$value = 3;<br>
double(\$value); # pass a reference to $value<br>
print "$value\n"; # 6 expected<br><br>
sub double {<br>
my $ref = shift;<br>
$value = $$ref; # dereference $ref<br>
$value *= 2;<br>
}<br><br>
-- <br>
Sean Carte <scarte@pan.uzulu.ac.za><br>
University of Zululand<br><br>
<br>
______________________________________<br>
Inflex - installed on mailserver for domain @pan.uzulu.ac.za<br>
Queries to: postmaster@pan.uzulu.ac.za </blockquote>
<x-sigsep><p></x-sigsep>
<tt><br>
<font face="Courier New, Courier" size=2>Spike Hodge<br><br>
</font></tt><font face="Courier New, Courier">UNIX Programmer<br>
M-Web Technology<br>
021 596 8496<br>
083 294 9593<br>
Fax 0866721733<br><br>
<br>
</font>Click here and make M-Web your homepage<br>
<a href="http://homepage.mweb.co.za/" eudora="autourl">http://homepage.mweb.co.za</a>
</body>
</html>