3

鉴于这$struct是一个可以是哈希或数组引用的数据结构,我有一些看起来像这样的代码:

for (ref($struct) eq "HASH" ? values %$struct : values @$struct) {  
    # process $_
    ...
}

我想使用该函数的新values功能(接受对 unblessed 哈希或数组的引用)来编写它,这在我的 5.14.2 版本中有效:

for (values $struct) {  
    # process $_ 
    ...
}

漂亮多了!

但是文档values说这个功能是“高度实验性的”。它现在已经发布了几个版本(据我所知,从 5.12 到 5.16.0)。有谁知道是什么状态?实验进展如何?

4

1 回答 1

4

它被标记为实验性的,因为它是一个有争议的变化。这是有争议的,因为它不适用于所有对哈希的引用。* 自引入该功能以来没有发现任何新问题,但我认为没有人期望会发现任何新问题。


* —values($hash)可能会失败的地方values(%$hash)会成功。您的原始代码具有完全相同的问题,因此这种“限制”对values您来说不是问题。

于 2012-10-09T18:25:34.920 回答