in reply to difference between array and list in perl

A lot of theories are plain wrong, even the docs are not consistent...(e.g. naming "wantarray" instead of "wantlist")

An "Array" is a variable with allocated space in memory (noted/accessed with @x or $x[...] or [a,b,c] resp.) a "List" is either only syntax in the source, i.e. comma seperated expressions² or the mechanism for passing multiple values (e.g. when calling and returning from a sub¹) !

So your example

@list2 = (list1, list2, list3, list4); #example of list (WRONG!)

Shows a list at RHS whose values are assigned to an array-variable LHS.

Unfortunately in perl5 it's not simply possible to identify a list as a "literal array", because there are plenty of subtle differences, eg with @A=(a..c) these snippets $a=@A and $a=(a,b,c) produce totally different results.

UPDATE: Technically there is nothing like a "literal array", even if you construct an anonymous array reference  [a,b,c] you have a literal list a,b,c used to initialize an array!

You may want to search in the archives of the monastery ... it's really a f.a.q. ...

Cheers Rolf

1) The values are passed on a internal stack which exists only temporarily.

2) The parens are only for grouping.

UPDATES: different clarifications...

Replies are listed 'Best First'.
Re^2: difference between array and list in perl
by Anonymous Monk on Jan 17, 2010 at 03:13 UTC
    "wantarray" is a misnamed feature, but it is documented accurately ("... looking for a list value").
      as I already said ...the docs are not consistent...(e.g. naming "wantarray"...