perl中键集的等价性

perl中键集的等价性,perl,Perl,我有一个如下声明的哈希: $test = { "A" => "B", "C" => "D", "E" => "F", }; 我想获得数组中的键[“A”、“C”、“E”]。我该怎么做呢?键是您需要的。请看这里: 嗯,$test是一个散列引用,所以只需取消引用它并将密钥分配给数组: my @array=keys %$test; (请参阅:)N.B.:从Perl5.14开始,键可以采用标量表达式,标量表达式必须包含对未lessed哈希或数组的引用。参数将自

我有一个如下声明的哈希:

$test = {
    "A" => "B",
    "C" => "D",
    "E" => "F",
};

我想获得数组中的键[“A”、“C”、“E”]。我该怎么做呢?

键是您需要的。请看这里:


嗯,
$test
是一个散列引用,所以只需取消引用它并将密钥分配给数组:

my @array=keys %$test;

(请参阅:)

N.B.:从Perl5.14开始,键可以采用标量表达式,标量表达式必须包含对未lessed哈希或数组的引用。参数将自动取消引用,即
use 5.14.0。。。keys$test
Good point Joel。虽然我的理解是,
keys HASHREF
是对5.14的实验性添加,将来可能会被更改/删除?我应该发布下一句:keys的这一方面被认为是高度实验性的。在未来版本的Perl中,确切的行为可能会发生变化。但是我认为人们喜欢这个概念,
keys$ref
没有以前的意义,因此这是一个罕见的语言添加,不应该有向后的不兼容;它能破解的唯一代码从来没有运行过!感谢您添加了Joel(我想我最近看到了关于它的评论是实验性的——结果它出现在我链接到的perl文档中:-)),或者更正式的
keys %{$test}