Perl 无法在另一个数组的哈希中打印数组
请检查以下代码。我想打印数组,但它只打印数组中的第一项Perl 无法在另一个数组的哈希中打印数组,perl,Perl,请检查以下代码。我想打印数组,但它只打印数组中的第一项 $prefix = 'ABC'; $search_pc_exclude = "PC1 PC2 PC3"; @exclude = split(/\s+/, $search_pc_exclude); push @prefix, {"pre" => $prefix, "exc" => @exclude}; print $prefix[0]->{pre}; print $prefix[0]->{exc}; #why th
$prefix = 'ABC';
$search_pc_exclude = "PC1 PC2 PC3";
@exclude = split(/\s+/, $search_pc_exclude);
push @prefix, {"pre" => $prefix, "exc" => @exclude};
print $prefix[0]->{pre};
print $prefix[0]->{exc}; #why this is not array?
分配实际上是这样处理的:
push @prefix, {"pre" => $prefix, "exc" => "PC1", "PC2" => "PC"}
这将为您提供这些键的哈希。您需要一个数组引用:
# This creates a copy of @exclude
push @prefix, {"pre" => $prefix, "exc" => [@exclude]}
或:
分配实际上是这样处理的:
push @prefix, {"pre" => $prefix, "exc" => "PC1", "PC2" => "PC"}
这将为您提供这些键的哈希。您需要一个数组引用:
# This creates a copy of @exclude
push @prefix, {"pre" => $prefix, "exc" => [@exclude]}
或:
谢谢你,莱纳斯!但在将其更改为\@exclude之后,我仍然无法打印它(打印$prefix[0]->{exc};),但得到了“ARRAY(0x9e2b368)”。无需担心。我想出来了。我需要先取消引用它(即,$arr=$prefix[0]->{exc};@arr=@$arr;),再次感谢!这是因为$prefix[0]->{exc}是一个数组引用,您需要取消引用它!使用print@{prefix[0]->{exc}来打印数组…谢谢Linus!但在将其更改为\@exclude之后,我仍然无法打印它(打印$prefix[0]->{exc};),但得到了“ARRAY(0x9e2b368)”。无需担心。我想出来了。我需要先取消引用它(即,$arr=$prefix[0]->{exc};@arr=@$arr;),再次感谢!这是因为$prefix[0]->{exc}是一个数组引用,您需要取消引用它!使用print@{prefix[0]->{exc}打印数组。。。