在Perl中,我如何创建一个哈希值,其值将是二维数组的地址? 我也需要动态获取2D数组的值。
请给我准确的编码。我打破了我的脑袋。
答案 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
。