我在记录中添加了一个数组,但是我无法访问数组的元素。这是我的代码。
# Create and initialize an array
@array = (1, 2, 3);
# Add it to a record
$rec = {
field1 => 'foo',
field2 => @array
};
我尝试打印数组的内容,但它不起作用。
print $rec->{field2}[0] . "\n";
我的问题是......将数组添加到记录然后访问数组元素的正确方法是什么?
答案 0 :(得分:6)
你必须参考数组,
$rec = {
field1 => 'foo',
field2 => \@array
};
否则数组将变为扁平化列表
$rec = {
field1 => 'foo',
field2 => 1,
2, 3
};
您可能还想查看perldoc perlreftut
答案 1 :(得分:0)
你可以像这样访问hashrefs中的arraysrefs:
$rec->{field2}->[$i]
其中$ i是您要访问的元素的索引。
问候蒂姆
编辑:添加了完整的工作示例
#!/usr/bin/perl
use strict;
use warnings;
my $ref = {field1 => "test", field2 => [5,6,7,8,9]};
print $ref->{field2}->[0],"\n";
print $ref->{field2}->[1],"\n";
print $ref->{field2}->[2],"\n";
print $ref->{field2}->[3],"\n";
print $ref->{field2}->[4],"\n";
将输出:
5
6
7
8
9