如何进入阵元Perl

任务。 在Perl,该程序有一个阵列。 你需要读的价值的一个阵列的要素。

这里是一个例子如何做到这一点:

▶ Run
#!/usr/bin/perl

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

print $arr[1];

如果保存的文本的这个方案的进一文件 script.pl 和运行 perl script.pl,屏幕上会出现的文本 two.

那么,什么会在这里。

第一,我们创建了一系列名为 @arr. 可变数组开始用字符 @,这个符号是类似于第一 一封信从"字阵列". 我们已经创建了一个数组并已置于3的项目。 在我们的例子中,所有3项 线,但都在一个单一的阵列可以包含项目非常不同的类型,例如,符,数字和参考文献。

每个元素都有其自己的序列号。 这些称为"指数"。 在一种编程语言 Perl和其他许多编程语言的元件阵列可以开始编号与数量为0。 在本例中的阵列 包含3个要素:

  • 'one' 的阵元,与指数 0
  • 'two' 是阵元,与指数 1
  • 'three' 的阵元,与指数 2

为了访问阵元,与指数 1 需要编写 $arr[1]. 写名字阵列和平方 括号中的编写索引,本项目,我们要检索。 注意一个特征。 当我们打开 一个元件阵列,而不是一个符号 @ 名列需要编写符号 $ (美元的迹象,符号是类似于第一 字母的单词"标"). 这个想法, 有这样的记录,我们清楚地强调,我们需要得到一个价值,但是,在我看来,这是设计错误 语言。 它并没有简化,但与此相反作更加困难。 在一种编程语言Perl6是固定的, 但在Perl5在访问阵元需要用美元标志 $: $arr[1].

提到的最后一个元件阵列

在创建一系列 @arr 出现自动变 $#arr 其中包含指数的最后一个元素。 在加入/消除元件阵列可变自动更改(甚至可以自己 记录的数量在这一变量)。

访问的最后一个元素可以使用记录 $arr[$#arr]. 但更容易 使用 $arr[-1]. 索引 -1 装置的索引,最后一个元件阵列,索引 -2 —倒数第二等。

错误的方式

这里的代码(小心,这包含的错误):

▶ Run
#!/usr/bin/perl

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

print @arr[1]; # error

这个选择是只是为正确的,但是正确的访问的一个元件阵列,使用 $arr[1]在这里 用 @arr[1].

如果保存的文本的这个方案的进一文件 script.pl 和运行它 perl script.pl,视将文本 two. 串 'two',这是真实的元件的索引 1 中所列 @arr,所以乍看之下,错误是不可见的。

但如果你加入程序代码线 use warnings; (这几乎总是值得做的),然后输出将可以 可见的警告:

Scalar value @arr[1] better written as $arr[1] at script.pl line 7.
two

形式 @arr[ ] —是越来越多值阵列。 这就是所谓的"切"。 一些例子:

  • @arr[1,2] —返回的一个列表中的两个要素,该阵元的索引1和2
  • @arr[0..2] —返回的一个列表中的三个要素,该阵元的索引0、1和2
  • @arr[1, 1] —返回的一个列表中的两个要素,重复元指数的1次

@arr[1] —返回的一个列表中的一个元素,加上问题的一个警告。

@arr[1,] —返回的一个列表中的一个元件没有警告。

如果你需要价值的一个元件阵列,最好是写 $arr[1].

相关的主题

其他文章