【发布时间】:2019-08-28 08:05:36
【问题描述】:
我是 Perl 新手,正在努力适应 Perl 中的数据结构和引用。
我学会了
-
key %hash返回%hash中的键数组 -
\{ @array }返回对@array的引用
所以我把这两个结合起来写了这样的东西,
use strict;
use warnings;
use Data::Dumper;
my $hash = {
key1 => 'value1',
key2 => 'value2'
};
my $keys = \{ keys %$hash }; # Supposed to be an array reference?
print Dumper $keys; # Output 1
print Dumper $keys->[0]; # Output 2
在Output 2 的行产生错误Not an ARRAY reference。此外,Output 1 显示了一些看起来像哈希引用的东西,尽管它应该是一个数组引用。
我的代码有什么问题?
同样,下面的代码也没有出现同样的错误。
use strict;
use warnings;
my $array = [1, 2, 3, 4, 5];
my $first_two = \{ @{ $array }[0..1] }; # Isn't it an array ref?
my $first = $first_two->[0];
我想我对数组引用有误解。
【问题讨论】:
标签: perl