hash保存2 D数组的地址值

时间:2011-05-15 16:16:12

标签: arrays perl hash

在Perl中,我如何创建一个哈希值,其值将是二维数组的地址? 我也需要动态获取2D数组的值。

请给我准确的编码。我打破了我的脑袋。

2 个答案:

答案 0 :(得分:2)

这个怎么样?

my %hash = (
    foo => [[1, 2], [3, 4]],
    bar => [[5, 6], [7, 8]]
);

这里将2D数组建模为数组数组。

答案 1 :(得分:1)

数组和散列只能采用标量值,但数组引用(使用[]创建,除其他外)是标量。因此,使用此构造创建嵌套数组。把它想象成:

$array_element_1 = ['row 1 column 1', 'row 1 column 2'];
$array_element_2 = ['row 2 column 1', 'row 2 column 2'];
$array_reference = [$array_element_1, $array_element_2];
%hash = ( 'key' => $array_reference);

除了没有所有中间存储。这些被称为匿名引用(因为它们不要求在创建对结构的引用之前为原始结构指定名称)。请注意,使用{}创建匿名哈希引用。阅读更多perldoc perlreftut