在PERL中引用数组中不存在的元素时会发生什么?

时间:2014-01-16 07:40:47

标签: arrays perl

我刚刚在Perl中通过取消引用来实现.. 但是当有一个不存在的元素

时我们引用了一个数组会发生什么

2 个答案:

答案 0 :(得分:1)

当您从数组中请求不存在的元素时,您将返回undef

答案 1 :(得分:1)

如果需要rvalue,则返回undef。

$ perl -MData::Dumper -E'
    my @a;
    print(Dumper($x));
    print(Dumper(\@a));
'
$VAR1 = undef;
$VAR1 = [];

如果需要左值,则扩展数组,然后返回新创建但未定义的元素。

$ perl -MData::Dumper -E'
    my @a;
    print(Dumper($_)) for $a[4];
    print(Dumper(\@a));
'
$VAR1 = undef;
$VAR1 = [
          undef,
          undef,
          undef,
          undef,
          undef
        ];

(请注意,除非您指定给$_[0],否则代码会为子程序参数提供右值行为。)