是否可以在perl中为记录添加数组?

Eps*_*lon 0 perl

我在记录中添加了一个数组,但是我无法访问数组的元素.这是我的代码.

# Create and initialize an array    
@array = (1, 2, 3);

# Add it to a record
$rec = {
    field1 => 'foo',
    field2 => @array
};
Run Code Online (Sandbox Code Playgroud)

我试图打印数组的内容,但它不起作用.

print $rec->{field2}[0] . "\n";
Run Code Online (Sandbox Code Playgroud)

我的问题是......将数组添加到记录然​​后访问数组元素的正确方法是什么?

Сух*_*й27 6

你必须参考数组,

$rec = {
    field1 => 'foo',
    field2 => \@array
};
Run Code Online (Sandbox Code Playgroud)

否则数组被压平到列表中

$rec = {
    field1 => 'foo',
    field2 => 1,
    2, 3
};
Run Code Online (Sandbox Code Playgroud)

您可能还想检查一下 perldoc perlreftut