弄清列表和数组间的差别

所谓列表:就是一组有序的标量集合。

所谓数组:则是一个存储着列表的变量。

1.逗号操作符

对于数组,我们可以将它放在标量上下文中计算,但对于列表,则没有相应的概念。

标量上下文中德数组,返回的是数组中元素的个数。

my @array = qw(david alex peter)
my $count= @array   # 3

列表永远是列表,它没有标量解释。 逗号操作符创建的一系列的标量:

(‘david’,’alex’,’peter’) 在期待列表的上下文中 比如数组赋值,foreach 循环中它是列表

但是在标量上下文中,它就不是列表,而是逗号分隔的一串标量而已。逗号操作符在标量上下文中会返回最右边的元素

my $scalar = (‘david’,’alex’,’peter’)  会将peer 返回给$scalar .

2.列表上下文的赋值操作

在标量上下文的环境中的列表赋值操作,会返回赋值操作符右边元素的个数

my $elements = () = localtime;
my $count= ()=m/(...)/g;
my $count= () = split /:/,$line;
原文地址:https://www.cnblogs.com/tjxwg/p/2916290.html