フォロー

【ふと】Perlを使う人は新しめのv5.26とか使って欲しいなあ。色々便利だし、セキュリティの面でもより丈夫だし。…あ、古めの自作サービスのPerlがv5.18のままだったかも💦

新しいバージョンでは正規表現のある変数使用が速度の低下を招くケースを改善してます。だから古いバージョンを使った前提で「低下を招くからこの使い方はNG」とか書いてあるブログの類のお話は新しいバージョンで全く通用しなかったりしますから、バージョン番号を明示したり、注釈で「バージョン○○○以降では解消済」とかキチンと説明をメンテしているトコを参考にしましょう。

v5.20以降ならOK ⊂( 'ω' )⊃
「性能問題」
「Perl では伝統的に、$`, $&, $' (または use English での 等価物) をコードのどこかで使うと、コードが引き続いてこれらの変数に アクセスするかもしれないので、引き続くすべての成功したパターンマッチングで マッチングした文字列のコピーを作ります。 これはプログラム全体に対してかなりの性能上の負荷を掛けるので、、一般的に これらの変数の使用は非推奨です。」
「Perl 5.20.0 では新しいコピーオンライトシステムがデフォルトで有効になり、 これらの変数に関する性能問題はすべて最終的に修正され、これらをどこで使っても 安全になりました。」
perlvar - Perl で定義済みの変数 - perldoc.jp perldoc.jp/docs/perl/5.28.0/pe

This also means you can disable the Modules::RequireNoMatchVarsWithUseEnglish #PerlCritic policy (metacpan.org/pod/Perl::Critic:) if you can be sure you’re running on #Perl v5.20 or later!

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。