我期待这给出数组的长度.因为我认为$mo隐含的标量上下文.
但相反,我得到错误:
Global symbol "$mo" requires explicit package name at ./a.pl line 7.
#! /usr/bin/perl
use strict;
use warnings;
my @mo = (3,4,5);
print( $mo);
Run Code Online (Sandbox Code Playgroud)
UPDATE ::我认为mo是变量,$ mo上的sigil $正在使用标量上下文.我的问题更多的是关于sigil然后实际得到长度.
小智 5
为了获得@mo使用中的元素数量scalar @mo.
my $num_elements = scalar @mo;
Run Code Online (Sandbox Code Playgroud)
您可以省略scalar上下文指示它必须是标量的时间,例如在比较中:
if ($count < @mo) { print "$count is less than the number of elements" }
Run Code Online (Sandbox Code Playgroud)
您也可以使用$#mo,这是最后一个元素的索引(通常比元素的数量少一个).
my $last_index = $#mo;
Run Code Online (Sandbox Code Playgroud)
当您遍历数组并需要数组索引时,这很有用:
for (0..$#mo)
{
print "Index $_ is $mo[$_]\n";
}
Run Code Online (Sandbox Code Playgroud)
$mo 获取数组元素时使用该表单:
my $second_element = $mo[1];
Run Code Online (Sandbox Code Playgroud)
$mo 只是它本身是一个完全独立的变量(尽管你可能不应该创建这样一个变量,因为它会让人感到困惑).
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |