我正在尝试在 Perl 中创建一个散列,其值是数组。就像是:
my @array = split(/;/, '1;2');
my $hash = {'a' => @array};
令人惊讶的是,这个报告(使用 Data::Dumper):
$VAR1 = {
'a' => '1',
'2' => undef
};
这一页给出了一个通过使用方括号定义数组来将数组存储在哈希中的示例,例如:
my $hash = {'a' => ['1', '2']};
这可行,但我是通过调用来获取我的数组的split
方法。方括号与括号在定义数组时有何神奇之处,以及如何将“括号数组”转换为“方括号”数组?
哈希(和数组)元素的值是标量,因此不能将数组存储到哈希中。
以下都是等效的:
my $hash = { a => @array };
my $hash = { 'a', @array };
my $hash = { 'a', $array[0], $array[1] };
my $hash = { a => $array[0], $array[1] => () };
常见的解决方案是存储对数组的引用。
my @array = split(/;/, '1;2');
my $hash = { a => \@array }; # my $hash = { a => [ '1', '2' ] };
[ LIST ]
类似地创建一个数组,分配LIST
到它,然后返回对数组的引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)