ドキュメントの要件としてこれ以上言及しない最高の Perl バージョンはどれですか? たとえば、私は見たことがありません: Perl 4 以上が必要です。
4 に答える
最終的には、追加情報をユーザーに提供しても害はないので、非常に古いバージョンとの互換性がないことを知っている場合は、それについて言及することもできます。
ただし、Perl 4 は別の言語と見なされます。それについて言及する必要はありません。C++ プログラムが C で実行されるとは誰も期待しません。
このフォーラムでの質問から判断すると、5.8 はまだ広く使用されています。したがって、十分にテストされ、できるだけ広く役立つモジュールを作成することに興味がある場合は、少なくともテストをそこまで遡って行うことをお勧めします。
特定のバージョンを実行する必要がある場合はrequire VERSION
、モジュール内で を使用すると、この要件を適用するのに役立ちます。そうすれば、ユーザーが古いバージョンでモジュールを実行しようとすると、明確なエラー メッセージが表示されます。
それが何であれ、実際にテストした最も古い Perl を文書化してください。推測しないでください。非互換性が忍び寄ります。他の人が述べたように、コードとuse v5.x
モジュールのメタデータの両方で最小バージョンを宣言します。
どこまで遡ればいいですか?サポートしてテストしたい最も古いバージョンが何であれ。それはあなたの時間であり、潜在的な欲求不満です。過去に遡るほど、見逃している機能が増え、機能する CPAN モジュールが少なくなり、回避しなければならないバグが増えます。
スレッドまたは Unicode を使用している場合は、可能な限り最新のものを使用してください。Unicode サポートは常に改善されています。スレッドは 5.8 で非常にバグの多い状態から始まり、5.10 で固まり始め、それ以来改善されています。
5.10.1 は非常に安全な最小値であり、autodie、parent、compression、archive モジュール、define-または、たとえば given/when、スマート マッチ、名前付きキャプチャなどを取得します。特に 5.10.1 は、5.10.0 と互換性のない方法でスマート マッチがどのように機能するかを修正するためです。これは Debian stable に付属するもので、互換性を確保するための適切な下限です。これは、ほとんどの CPAN モジュールから信頼できるサポートを期待できる最も早い時期です。
その前の次のステップは、5.8 シリーズの最後の 5.8.9 です。これは、健全な運用環境などで目にする可能性が高い最も古い Perl です。多くの機能が失われ、スレッドがうまく機能する可能性は低く、Unicode はまだ少し不安定で、CPAN モジュールが壊れ始めます。
その前は 5.8.4 で、主流のオペレーティング システムである Solaris に同梱されていることが知られている最も古い Perl です。オペレーティング システムのバージョンと、同梱されている Perlの便利なリストを次に示します。
その前は 5.6.1 です。5.6.2 には多くのバグ修正が含まれていましたが、広く採用されることはありませんでした。この時点で、アップグレードすることのない無愛想で埃っぽいインストールに何層も深く入っています。スレッドと Unicode のサポートは存在しますが、形式が大きく異なり、非常に壊れています。多くの CPAN モジュールは 5.6 をサポートしていません。
5.005_03 と 5.004_04 は、次の崩壊しつつある棚です。この時点で、マゾヒズムまたは学術的な演習になります。いくつかの非常に古いインストールが動き回ったり、いくつかの「スレッドと Unicode を追加する前の Perl の方が優れていた」ものを見つけたりするかもしれません。
5.004 より前の構文や、非常に一般的な構文などforeach my $foo
は使用できません。
www.perl.org:
現在のバージョン: Perl 5.16.1
したがって、5.10 を超えるものについて言及するとよいでしょう。
私はModern::Perlを使っています
あらすじ
最新の Perl プログラムは、いくつかのモジュールを使用して、Perl および CPAN の追加機能を有効にします。これらの使用行をすべてコピーして貼り付ける代わりに、代わりに 1 つだけを記述します。
use Modern::Perl
上位互換性のために、1 つのオプションのインポート タグとして年を指定することをお勧めします。例: Modern::Perl '2009' を使用します。Modern::Perl '2010' を使用します。
... どちらも 5.10 機能を有効にします ...
参照: perldoc Modern::Perl またはhttps://metacpan.org/module/Modern::Perl
最小バージョンが必要であることがわかっている場合は、それを文書化しないのはなぜですか? 依存関係は通常、README ファイルに記載されており、Makefile.PL または Build.PL でインストーラーに指定されています。
サポートされている Perl のバージョンは 5.14 と 5.16 の 2 つだけですが、多くはまだ 5.8 と 5.10 を使用しています。たまに5.5や5.6の話も聞く。