弄清列表和数组间的差别
所谓列表:就是一组有序的标量集合。
所谓数组:则是一个存储着列表的变量。
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;