许多项目在Perl阵列

任务。 在代码的Perl程序有一系列 @arr (第一三个字母的单词"阵列"). 在这个阵有一些价值观。 需要知道的如何许多在这个阵列含有元素。

有几种方法来解决这个问题。

使用标方面

如果你使用列在标上下文,然后将这一值的数量元素中的阵列:

my $number_of_elements = scalar(@arr);

例的程序:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print scalar(@arr);

该节目的显示的号码3。

标方面可以得到的不仅通过使用 scalar(),但是有帮助的一些算法运算的,这并不改变数,例如,加/减为零或乘/分单元:

my $number1 = @arr + 0;
my $number2 = @arr - 0;
my $number3 = @arr * 1;
my $number4 = @arr / 1;

用一个变量和指数的最后一个元素

另一种方式找出阵列的长度是用一个变量相关联阵和其中包含的数量的最后一个元素。 如果阵列叫做 @arr,这一变量将被称为 $#arr. 第一个元素在Perl列有0号,因此,获得项目的数量,你需要添加这个变量为1。

my $number_of_elements = $#arr + 1;

如何计算的不同单元和民主基金

不管是什么价值都包含在阵列。 可能有简单的字符串数字和复杂的结构。

如果阵列包含的价值民主基金,那么他们也是。 这里的一个例子是一系列包含4个要素:

my @arr = (1, undef, 3, undef);

错误的方法计数是使用长度()

这里是一样的程序。 该计划显示的1号和可能错误地假设, length() 应用于一系列返回的数量元素。

▶ Run
#!/usr/bin/perl

my @arr = ('one');

print length(@arr);

但这是不正确的假设。 为了验证这个你可以检查,对于一系列 my @arr = ('one', 'two', 'three') length()将返回1.

length() 应用于列返回的数量元素和数位数的数量元素。 如果阵列包含9个或更少的项目,然后 length(@arr) 将返回1如果阵列包含从10到99元, length(@arr) 将返回2,等等。

相关的主题

其他文章