I like to think of the difference between lists and arrays thus
- Lists are immutable, once constructed/created, you can't change them. You can copy them to another list, create new lists from parts of the original, etc. But you can't change the list.
- Arrays are true variables - you shift off the front, push onto the back, splice out of the middle - change it anyway you want.
So operations that modify the length of a 'list' require an array. The camel book says you can think of an array as a variable and a list as its values.
Note that you can assign to an element of a list e.g.
($a, $b, $c) = @_;
but you can never change that list - you can't add another value, delete a value to make a shorter list or make one of the elements refer to a different variable. It is forever a list of 3 variables, $a, $b and $c.
+++++++++++++++++
#!/usr/bin/perl
use warnings;use strict;use brain;