perl 101,在数组变量上使用$获取数组的长度

前端之家收集整理的这篇文章主要介绍了perl 101,在数组变量上使用$获取数组的长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我期待这给出数组的长度.因为我认为$mo隐含了标量上下文.

但相反,我得到错误

全局符号“$mo”需要在./a.pl第7行显式包名.

#! /usr/bin/perl
use strict;
use warnings;

my @mo = (3,4,5);
print( $mo);

更新::
我认为mo是变量,$mo上的sigil $使用标量上下文.我的问题更多的是关于sigil然后实际得到长度.

解决方法

为了获得@mo中元素的数量,请使用标量@mo.

my $num_elements = scalar @mo;

当上下文指示它必须是标量时,您可以省略标量,例如在比较中:

if ($count < @mo) { print "$count is less than the number of elements" }

您还可以使用$#mo,它是最后一个元素的索引(通常比元素数少一个).

my $last_index = $#mo;

当您遍历数组并需要数组索引时,这很有用:

for (0..$#mo)
{
   print "Index $_ is $mo[$_]\n";
}

获取数组元素时使用$mo表单:

my $second_element = $mo[1];

$mo本身就是一个完全独立的变量(虽然你可能不应该创建这样一个变量,因为它会让人感到困惑).

猜你在找的Perl相关文章