2010-12-28 5 views
2

私は、システム担当者が管理しているマシンでPerlスクリプトを使用するプロジェクトで作業します.Perlモジュールなどのパッケージをインストールするのは簡単な作業ではありません。通常、その作業を行う権限がある人に電話をかけ、パッケージのAPIを覚えて、今までにインストールされた新しく構成されたすべてのマシンにインストールすることを忘れないでください。Perl:いつあなたはいつsystem()を使いますか?あなたはいつパッケージをインストールしますか?

多くの場合、代わりにsystem()(またはバックティック表記``、Perl内)を呼び出し、必要な処理を行うシェルコマンドの出力を使用します。もちろん、それはいつも可能ではありません。そして、それが使用されるとき、通常、コマンド呼び出しの周りにラッピングがありますが、一般的には簡単です。

私の質問は、あなたの経験の中でどちら側に引き離されているのですか?

編集:例を追加してください: ディレクトリの合計サイズを人間が判読可能な形式で表示するか、特定のサイズより大きいすべての通常ファイルを表示したいと考えています。duは、同じことをしてください...

答えて

2

問題の核心は、Perlモジュールをインストールするには、時間の知覚難しさや長さのようです。私はパッケージのインストールに問題がある理由を特定し、プロセスを合理化するのに役立ちます。

よくある解決策は、プロセスを変更することです。管理者は通常、CPANから直接インストールするのは好きではありませんが、開発者はローカルのCPANリポジトリを使用できます。そこで使用しているパッケージを "フリーズ"し、プロダクションで使用するためにパッケージをプロモートします。モジュールを使用するか、次のようにそれを砲撃の間のトレードオフと

データ

モジュールは、一般的に、あなたが解析する必要が戻って非構造化テキストを砲撃、構造化されたデータを返します。

パフォーマンス/リソースの使用状況

砲撃は、モジュールは通常、現在のオペレーティング・プロセス内の機能を提供し、全体の他のプロセスを作成します。

砲撃追加の依存

はあなたに砲撃しているものは何でも上のあなたのプログラムが依存させます。基本的なプログラムの中には、出力と動作がOSからOSに変化するものがあるので、特定のOSやOSのセットに自分自身を組み込むこともできます。

7

ああ、それは簡単です。従来のIPCに適合しないデータを通過させることが可能になるため、常にモジュールが好まれます。


あなたは厄介なシステム管理の下であなたの苦しみを合理化するのに助けを期待しましたか?

+0

まあ、種類... –

+2

また、デフォルト以外のディレクトリにモジュールをインストールすることができますので、特別な権限を持つ人に電話する必要はありません。 – Joel

+0

私はいつも "シェルリング"を超えてモジュールを使いたいと思っていましたが、私はこのようなことをする反論を聞いていました:Perlは範囲外になっても変数が占有するメモリの解放を保証しないので、別のプロセスで呼び出された外部コマンドにタスクを委譲し、それによってメインプロセスのメモリフットプリントを増やさないように、長期間実行される永続的なWebアプリケーションプロセスの方が優れています。フォークのオーバヘッドのために少し効率が悪いかもしれませんが、子プロセスのメモリは、実行されるとOSによって再利用されます。 –

1

としてはlsdirではないので、常に...、いつも

2

モジュール、モジュールをモジュール、上記と述べました。そして、私がいつも言う時、私は「ほとんどいつも」を意味します。

モジュールの制御やデバッグが容易です。無関係のユーティリティよりもモジュールをインストールするほうが簡単です。特定のコマンドのchancyコマンドライン構文に依存するのではなく、モジュールを使用する方が移植性が高くなります。

+0

この「ほぼ」に隠されている例外は何だと思いますか?それが私の質問です。 –

+0

例外は、モジュールがユーティリティほど良くない場合、または環境、手順、パフォーマンス上の理由からコマンドラインの方が優れている場合です。これはまれです。 – Sorpigal

2

コアディストリビューションにはbunch of modulesがあります。ちょうどそれらを使用します。あなたは右のあなたのホームディレクトリにモジュールをインストールすることができ、時間はシステム管理者との交渉になると

http://perl.jonallen.info/writing/articles/install-perl-modules-without-root

+0

リンクをありがとうございます!それは私が思ったよりも簡単です。 –

+0

私はsysadminとして、プロダクション設定のホームディレクトリにインストールされたperlモジュールの使用を許可しません。それは生産システム管理が悪いことです。 – dietbuddha

+1

もちろん、私はホームディレクトリでプロダクション用に使用するつもりはありませんでした。モジュールがsys管理者によってインストールされるまでです。 –

関連する問題