We don't bite newbies here... much | |
PerlMonks |
in reply to Re^2: Split does not behave like a subroutine
in thread Split does not behave like a subroutine
> I have to understand what (LIST) means in the documentation.
According to the docs cited in
List's terminology and Parentheses in Perl
<updated>
Uppercase "LIST" in perldocs is a argument placeholder for any code ...
For instance from the docs for print ...
print LIST; means that ...
the two commas are compiled to create a "list value" 1,2,3 for print
the array @a will be compiled to pass it's content as "list value" ( i.e.not his length from scalar context)
the sub &func will be called in "list context" at run time and return a "list value" from it's last statement. ( compare wantarray )
</updated>
> To understand this:
> > The scalar comma operator returns the last element.
> I must understand in which list it is the last element.
Comma separated lists (sic)
Please compare (updated)
# --- list assignments @a = (1,2,3); # list comma @a = (1..3); # list range ($a) = @a; # deconstruction => $a==1 # --- scalar assignments $a = (1,2,3); # scalar comma $a = (1..3); # flip flop operator ... Oo oops! $a = @a; # scalar @a == length
The parens on RHS only do grouping here they do not create a list. Hence the context is propagated to the operators , and ..
@a = and (...)= are "list assignment" imposing "list context".
The range 1..3 returns the list value 1,2,3 in list context only.
You have to think of the whole statement as an op-tree...
With ...
If that's not clear enough please show a short code exemplifying your problem.
HTH
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
you may want to play around yourself with B::Deparse and B::Concise to experiment around with the snippets shown
perl -MO=Deparse,-p -e "CODE"
and
perl -MO=Concise -e "CODE"
|
---|