On Monday, April 8, 2002, at 07:28 , Timothy Johnson wrote:
[..]
> If you just pass the value,
> then any operations performed on your variable in the subroutine will be
> destroyed when the sub exits. This way you will be performing all
> operations on the original variable, allowing you to change it as if it
> were
> in scope.
[..]
p1: thank you for the illustration of pass by reference, vice
the traditional 'pass by value' approach I normally do with say
sub myFunc { my ($var) = @_ ; .... }
p2: I also noticed that I could access the upper level $var inside
the PrintSub function.... but that using the simple
my $subvars = ${$_[0]}; #dereference the reference you passed.
did not mean that
$subvar = ":The Other String:";
would actually change the value in 'the main'. To do that I needed
to specifically do
my $ref = $_[0];
...
${$ref} = $subvar ;
cf:
http://www.wetware.com/drieux/CS/lang/Perl/Beginners/sub_ref.txt
which generates
starting Var is :The String Value:
SUB: $subvar is now :The String Value:.
SUB: $var is now :The String Value:.
MAIN: $var is now :The String Value:.
SUB: $subvar is now :The String Value:.
SUB: Reset $subvar to :The Other String:.
MAIN: $var is now :The Other String:.
ciao
drieux
---
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]