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...
In reply to Re: difference between array and list in perl
by LanX
in thread difference between array and list in perl
by manishrathi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |