Perl 5.18 をインストールしたところ、次のような警告がたくさん表示されます。
given is experimental at .\[...].pl line [...].
when is experimental at .\[...].pl line [...].
Smartmatch is experimental at C:/strawberry/perl/site/lib/[...] line [...].
これらの警告 (どこにも言及されているのを聞いたことがない) を調べると、これは 2 か所でしか見つかりませんでした。
- perldelta for 5.18 、これは機能が実験的にダウングレードされたと言う限り、実際に言及しているだけですか?
- この nntp.perl.org の投稿
Perl Delta は、これらの機能で何が起こっているかについて言及するために依然として最も多くのことを行っています。ポッドに半分埋もれていて、
v5.10.0 で追加され、v5.10.1 で大幅に改訂されたスマート マッチは、常に苦情の対象となっています。便利な方法はたくさんありますが、Perl のユーザーと実装者の両方にとって問題があり、混乱を招くことも証明されています。この問題にどのように対処するのが最善かについて、多くの提案がなされてきました。スマートマッチが将来変更されるか、なくなることはほぼ確実です。現在の動作に依存することはお勧めしません。パーサーが ~~、given、または when を見たときに警告が発行されるようになりました。
過去 10 年間の Perl での最も重要な変更がどのように実現されたのか、私は混乱しています。given
、when
、およびをあちこちで使い始めましsmartmatch
た。これらの先物について、これ以上の情報はありますか? それらを「混乱させている」と感じる人はいますか?これらの機能はどのように変化する可能性がありますか? これらの機能をモジュールで実装する計画はありますか?