> does that make it any clearer? Absolutely ! now 99.9% clear except the following query ! So am I right to say that @_ is the default array, something like the default scalar $_.
eg of default $_ :- @array = qw (hello world); foreach (@array) { print; ## print $_ }; Thank You ! --- end of msg ----- ----- Original Message ----- From: "Daniel Gardner" <[EMAIL PROTECTED]> To: "Leon" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Monday, November 26, 2001 8:59 AM Subject: Re[2]: @_ > Hello Leon, > > Monday, November 26, 2001, 12:15:59 AM, Leon wrote: > > L> ----- Original Message ----- > L> From: "Jenda Krynicky" <[EMAIL PROTECTED]> > L> To: <[EMAIL PROTECTED]> > L> Sent: Monday, November 26, 2001 4:44 AM > L> Subject: Re: @_ > > >> When you cann a function all the parameters you gave it end up in > >> @_. You can (and usualy do) copy them then into some lexical > >> variables to give them meaningfull names. You don't have to > >> though. > > ---->> If for example <---- you wanted to write a function that sums two > > L> I like your style, in fact I think everybody should follow Jenda's style of > L> giving an example after an explanation ; an example paints a thousand words. > > >> numbers you can write it either as > >> sub add { > >> my ($a, $b) = @_; > >> return $a + $b; > >> } > > L> On the above, so what is @_? > L> @_ = ? > > > if i have code like: > > $result = add( 2, 3 ); > > then in the code > > sub add { > my ($a, $b) = @_; > return $a + $b; > } > > @_ is set to the list (2, 3) just after the "sub add {" line > > there's nothing really special about @_, it's the same as any other > array, eg: > > @foo = (1, 2, 3); > > isn't special, @_ is just an array who's name is "_", think of the _ > like the letter "a" and it might look more comprehensible. > > the only special part comes when we're calling a subroutine, where @_ > is used to pass the variables into our subroutine. > > we could say: > > my @foo = (1,2,3); > my ($value1, $value2, $value3) = @foo; > > and now $value1 == 1, $value2 == 2 and $value3 == 3. so it's the same > when we use @_ at the start of a function. > > my ($a, $b) = @_; > > does that make it any clearer? > > > -- > Best regards, > Daniel mailto:[EMAIL PROTECTED] _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]