On Thursday, Sep 4, 2003, at 04:53 US/Pacific, Andrew Brosnan wrote:
On 9/4/03 at 11:34 AM, [EMAIL PROTECTED] (B. Fongo) wrote:[..]An argument passed to a subroutine returns wrong value.
Code example:
In both cases, the script prints out 1. What is going on here?
You are asking Perl for the number of elements in @_.
If you want the value(s) from @_, then my $forwarded = shift; or my ($forwarded) = @_;
there is also the minor defect that the sub
sub showValue { my ($forwarded) = @_; print $forwarded; }
will generate something like "ARRAY(0xdba8)"
which is the Reference - not the content - he
will most likely want to deal with what the reference passed, eg:
my @x = (1..5);
print "#----------\n";
showValue([EMAIL PROTECTED]);
print "\n#----------\n# Calling the Pretty \n";
pretty_show_values([EMAIL PROTECTED]);
sub showValue {
my $forwarded = shift;
print @$forwarded; # print ${$forwarded};
}
sub pretty_show_values {
my $forwarded = shift;
print "@$forwarded\n"; # print ${$forwarded};
}also it is simpler to just 'dereference' the array directly.
ciao drieux
---
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
