Perl list
A list is a representation of a sequence of multiple values.
# List ('a', 'b', 'c', 'd')
Lists can be assigned to arrays or hashes for initialization. ..
# Assignment to array my @array = ('a', 'b', 'c', 'd'); # Assignment to hash my %hash = ('a', 'b', 'c', 'd');
Difference between array and list
Arrays and lists are similar, but in reality there are some differences.
The first difference is in the linguistic sense. Arrays are variable and lists are notations.
The second is that the values are different when evaluated in scalar context.
Take a look at the following code. What do you think about "$num1" and "$num2"?
# Evaluate list in scalar context my $num1 = (5, 6, 7); # Evaluate arrays in scalar context my @nums = (5, 6, 7); my $num2 = @nums;
The answer is that "$num1" becomes "7" and $num2 becomes "3".
In a scalar context, evaluating a list returns the "last value in the list", and evaluating an array returns the "number of arrays".
List notation for hashing
A simple notation using "=>" is provided to make assignments to hashes.
# Hash notation my %hash = (a =>'b', c =>'d');
It has exactly the same meaning as a regular list, only the notation is different. For the string to the left of =>, single quotes can be omitted if it consists only of alphanumeric characters and underscores. The notation that omits single quotes is preferred.
List assignment
You can assign a list by using the list on the left side. You can assign multiple values to multiple variable.
my ($var1, $var2) = (3, 5);
List by receiving command line arguments and receiving arguments in subroutine You can use assignment.
# Receiving command line arguments my ($var1, $var2) = @ARGV; # Receiving arguments in a subroutine sub foo { my ($var1, $var2) = @_; ... }
This is used frequently, so be sure to remember it.
String list operator
The string list operator makes it easy to represent a list of strings.
qw(Cat Mouse Dog)
Please refer to the following articles for a detailed explanation of the string list operator.
Automatic initialization with empty list
Arrays and hashes are declared and initialized with an empty list.
# The following is the same my @nums; my @nums = ();
# The following is the same my %score; my %score = ();