Daniel Staal wrote: > > --On Tuesday, October 14, 2003 15:59 -0700 "[EMAIL PROTECTED]" > <[EMAIL PROTECTED]> wrote: > > > > Also in a slightly different scenario, how can i change the value > > of the parameter itself with a sub. > > > > $a="ca"; > > toUpper($a); #change the $a value itself > > print $a; #I want it to print "CA" > > Ok, I'll assume this is a made-up example... (Since it would just be > easy to write 'print toUpper($a);', using the return value.) > > The way to do this would be to pass references to the parameters. > You would have to pass the references, and work with them.
There is no need to use references because the values of @_ are aliased to the variables passed to the sub so modifying the values in @_ will also modify the values of the variables. > So, the function call would become: > > toUpper(\$a); > > The sub would be: > > sub toUpper { return "\U$$_[0]"; } # (Hey, we have linenoise!) That still doesn't modify the value in $a. You would have to write it like: sub toUpper { return $$_[0] = "\U$$_[0]"; } Or: sub toUpper { return $_->[0] = "\U$_->[0]"; } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]