113

Perl はまったくの初心者ですが、試してみたいと思います。Windows プラットフォームで利用可能な 2 つのライバル ディストリビューションについて読みました (他の OS には Perlしかないと思います:)。

ウィキペディアによると、ストロベリー Perlには、必要に応じて CPAN モジュールをコンパイルするための追加の開発ツールが付属しています。それは私にはかなりいいですね。

また、ActivePerlには、PPM で簡単にインストールできるパッケージ化されたモジュールが多数あるとも書かれています。それも素晴らしいですね!

この 2 つの間には明確なトレードオフがあります。そして、私は疑問に思います: 始めるために何を選ぶべきですか? どちらかを選ぶとしたら、もう一方に移行するのは難しいですか?


両方のディストリビューションを数週間実行しました。私は実際に両方が好きでした。これは良いことです!これらのいずれかを間違えることはありません。私が ActivePerl を使用することになったのは、単純にオフライン ドキュメント(HTML 形式)が付属しているからです。移動中の人や、常に接続しているとは限らない人にとっては、命の恩人です。常にオンラインであるとは限らない休暇中に Perl 言語を使い始めるのは非常に簡単でした。

ストロベリーパールは、それ以上ではないにしても、少なくとも同じくらい優れています. だから私もそれを完全にお勧めできます。Perl はとても美しい言語です。試してみる!

4

10 に答える 10

47

Strawberry Perl は CPAN を使用します。これは、モジュールに関する限り最新であることを意味します。CPAN に何かが追加されると、すぐにアクセスできます。Strawberry Perl には MinGW も付属しています。これは、Strawberry Perl が変更を加えることなく、CPAN から直接かなりの数の XS モジュールを使用できることを意味します。MinGW ディストリビューションには、gccmakeldおよびモジュールの構築に役立つその他のツールが付属しています。Strawberry Perl には、PPM (Perl Package Manager ファイル) をインストールできるいくつかのモジュールも付属していると思います。

ActivePerl は、PPM (Perl Package Manager) と呼ばれる独自の形式を使用してモジュールをインストールします。公式リポジトリは ActiveState によってホストされています。ほとんどの一般的なモジュールの PPM を見つけることができるので、あいまいなパッケージや本当に新しいパッケージを探していない限り、問題はありません (PPM は通常 CPAN に遅れをとっているため、最先端のものは機能しません)。CPAN モジュールよりも簡単にインストールできますが、PPM は特に Windows 用に作成されているため、一部の CPAN モジュールは機能しません (Unix 固有の処理を行うため)。

私は以前に両方を使用しましたが、ほとんどの場合にうまくいくようでした. しかし、環境が Unix に近く、非互換性があまりないため、Strawberry Perl に傾倒しています。一方、ActivePerl は Windows 用に作成されているため、Windows で非常にうまく機能します。

もう 1 つのオプションは、Cygwin と Cygwin に付属の Perl をインストールすることです。私は以前にそれを行いましたが、かなりうまく機能します。CPAN にもアクセスできます。

あなたに最適だと思うものを選んでください。

于 2010-07-29T18:03:53.530 に答える
39

Vivin Paliath の役立つ回答を少しだけ増幅します。

ActivePerl / PPM の長所: お使いのバージョンの PPM があれば、それは機能します。

ActivePerl / PPM の短所: PPM が常にあるとは限らず、少なくとも常に最新の PPM があるとは限りません。

Strawberry Perl / CPAN のプロ: リポジトリは CPAN であり、サード パーティによって管理されている一連のバイナリではありません。作成者がリリースした瞬間に新しいモジュールがあり、作成者が意図したビルド システムを使用しています。

Strawberry Perl / CPAN 短所: すべてが Windows ツールで完全にビルドされるとは限りません。

Strawberry Perl / CPAN 緩和要因: Strawberry の開発者は、すべてがスムーズに進み、できるだけ多くの CPAN を利用できるように、そしてモジュールが問題点 (Windows でのビルドが難しい、ただし、他の一般的なモジュール/アプリケーションには必要です)、作成者と協力してモジュールを修正し、誰もがインストールできるようにするか、例外的なケースでは、独自の修正を適用してモジュールを Strawberry Perl または Strawberry Perl Professional にバンドルします。 .

私の好みは Strawberry Perl です。ActivePerl がやろうとしていることには感謝していますが、開発プロセスのボトルネックだと思います。これらは、コミュニティが集まって Strawberry Perl を構築し、Windows を Perl エコシステムの「最初の世界」に持ち込む前に必要でしたが、もはや必要ではありません。

于 2010-07-29T22:22:37.313 に答える
34

両方を何年も使用した後、少なくとも私にとっては、ActivePerlの方がはるかに便利な選択肢だと思います。ActivePerlに含まれているPPMインストーラーを使用すると、代替のPPMリポジトリーを追加できます。これにより、CPANで利用できるほぼすべての便利なPerlモジュールにアクセスできますが、Windows用に準備およびテストされています。これは私にとって、長期的には、はるかに優れた(そしてより堅牢な)選択でした。WindowsバージョンのApacheHTTPサーバーの場合でも、プリコンパイルされたmod_perl(2.0.4)ppmが利用可能であり、ActivePerl 5.12.1およびApache2.2.15ですぐに使用できます。

Windows7にDBI+DBD :: mysqlをインストールしようとした後、Strawberry Perlを削除したと思います(これはActivePerlでは簡単です。ppmをクリックしてインストールを選択するだけです)。

しかし、多分それは今では解決されています。そして多分、Strawberry Perlがインストールされるディレクトリを選ぶことができます(私はできませんでした)。

ところで:独自のインラインまたはXSのものをコンパイルするには、MinGWコンパイラをppm単位でインストールするだけです(私はそれをしませんでしたが、面白そうです)。

補遺:以下のコメントを読んだ後、Strawberry Perlをもう一度チェックしたところ、5.12.0リリース(実際のバージョン)の指定された機能であるインストールディレクトリを変更できるようになりました。これにより、Strawberry Perlの1つの重要な(IMHO)欠点が解決されます(ActivePerlと比較して)。

于 2010-07-29T22:26:26.277 に答える
19

Strawberry Perlは、そのアプローチにおいてよりUnixyであり、私がそれを使って作業したとき、私はいつもとても幸せでした。

しかし、ActivePerlは、そのカスタムパッケージ管理システムのために、私がそれを使って作業したとき、非常に苦痛でした。これは、エンタープライズ環境にいるときに重要です。

IMO、StrawberryPerlの方がいいです。/主観

于 2010-07-29T18:13:41.663 に答える
4

ActivePerl は Community エディションから大量のモジュールを除外しており、それらを Windows でビルドするのは非常に困難です。

また、最新版のみを無料でダウンロードして使用することもできます。5.8.8 または以前のバージョンのモジュールへのアクセスなど、その他すべては、Business ($1000/年/サーバー) または Enterprise エディション (見積もりごと) のいずれかです。

于 2013-04-03T03:04:39.227 に答える
4

完璧な世界では、debian-interixまたはpkgsrc-interix Perl (Interix/SFU/SUA に同梱されている古代の Perl ではありません) を選択します。 Cygwin からの Windows フォーク エミュレーションではありません)。

私は過去に持っていました (ここでは Windows マシンにインストールされています) が、誰もが Perl のためだけに SFU/SUA をインストールできるわけではありません。そのような場合、私は ActivePerl をお勧めします。これは主に、Windows ユーザーにとってインターフェースが親しみやすく (PPM グラフィカル シェルと CPAN)、Perl Dev Kit (PerlExe、PerlNET、PerlSvc など) と統合されているためです。

また、他の人の回答とは反対に、必要に応じて、ActivePerl で CPAN (および CPAN シェル) を使用できます (ただし、最初に PPM を介して必要な開発ツールをインストールする必要があります)。

于 2010-08-21T11:00:23.650 に答える
3

アプリケーションを正しく設計すれば、どちらを選択しても問題ありません。

大きなポイントは、それぞれが提供できる、または提供できないさまざまなモジュールのバージョンです。PPM パッケージは CPAN リリースよりも遅れる可能性がありますが、注意を怠ると、最先端の CPAN リリースが後方互換性を損なう可能性があります。さらに、Strawberry Perl では適切にビルドされないもの用の PPM パッケージが存在する場合もあります (ただし、これは、多くの場合、モジュールの設計が不十分であることを意味します)。

使用するモジュールのバージョンに注意してください。どのモジュールを選択しても問題ありません。

于 2010-07-29T18:03:05.243 に答える
3

Larry Wall が Strawberry Perl を使っているなら、あなたもそうすべきです。;)

于 2015-02-05T18:43:14.580 に答える
2

ファイルの同期に box.com クライアントを使用している場合は、おそらく (少なくとも現時点では) Strawberry Perl を使用することをお勧めします。実行可能ファイルが Box.com DLL ファイルのppm1 つと競合しています。GUI がまったく起動しません (「perl ... インタープリターが動作を停止しました」という Windows メッセージが表示されます)。また、Box.com クライアントがインストールされている場合、ppm のコマンド ライン バージョンを使用すると断続的な問題が発生します。

于 2014-08-14T16:56:20.700 に答える