11

「スイッチ」機能全体が実験的なものになりましたか? 将来のバージョンの Perl でコードが壊れることなく、信頼できる部分はありますか? 一般的に、安定した機能を実験的なものに変更するためのポリシーは何ですか?

バックグラウンド

use feature "switch"は 5.10 から Perl に含まれています。5.10 から 5.14perlsynまでは、これが安定してサポートされている機能であることを示しているようです。

ただし、5.16 以降では、これを「実験的なスイッチ機能」とperlsyn 呼ぶようになり、実験的と見なされるものについてさらに混乱が生じます。

ドキュメントの一部は、機能に関するすべてが実験的であることを示しているようです。

"switch" 機能の下で、Perl は実験的なキーワードgiven, when, default,continuebreak.

given と when の実験的詳細に関するセクション全体もあります。

ただし、 「トピックライザーを設定するための非実験的な方法です」とperlsyn 述べており、 foreach/when が実験的ではないことを暗示しているように見える例を示しています。foreach

私が知る限り、「実験的」言語は、 RT # 90906 と組み合わせても、まだあまりコンテキストを提供しないRT #90926を参照するコミット c2f1e22から来ました。

4

1 に答える 1

5

「スイッチ」機能全体が実験的なものになりましたか?

いいえ、いつもそうです。

Upd: うわー、多分私は間違っている. 5.10.0 または .1 でそれについての言及が見つかりません。そうじゃなかったかも?それとも、彼らはそれに注意するのを忘れていましたか?いずれにせよ、もしそうなら、彼らは私が思っていたよりもひどく混乱しているようです! しかし、それ以来私が見てきたことに基づいて、私は教訓が学ばれたと思います. (例えば、私はまだvalues $ref悪い考えだと思いますが、少なくとも初日から実験的とマークされていました。)

将来のバージョンの Perl でコードが壊れることなく、信頼できる部分はありますか?

技術的にはありませんが、開発者は下位互換性に関して常に注意を払っています。

一般的に、安定した機能を実験的なものに変更するためのポリシーは何ですか?

私はそれが起こっているのを見ません。代わりに非推奨プロセスが使用されます。


これまでの変更点:

  • given5.18 では、レキシカルの作成から foreach ループのようなローカライズに変更されて$_$_ます (または、5.16 で既に発生していましたか?)。

  • 5.10.1 では、スマートマッチングにいくつかの大きな変更が加えられました*。(スマートマッチング) 5.10.0 を使用しないでください。

将来の変更の可能性:

  • スマート マッチング* の動作は、依然としてホットなトピックです。

* — 確かに、これは given-when とは異なる機能ですが、ほとんどの人の心では同じか、密接に関連しています。

于 2012-12-14T19:53:02.177 に答える