3

これ$structがハッシュまたは配列参照のいずれかであるデータ構造であるとすると、次のようなコードがあります。

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

関数の新機能values(祝福されていないハッシュまたは配列への参照を受け入れるため)を使用して、代わりにこれを記述したいと思います。これは、私の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 に答える