3

コマンドを使用して Linux コマンド ラインから Perl モジュールをインストールすると、cpan次のように正常に動作します。

$ cpan [Module]

終了後、次の方法でモジュールのドキュメントを確認できます。

$ perldoc [Module]

しかし、コマンドcfengineのスクリプトを自動化するだけのを介してこれを行うと ( shellcommands:リストで)、モジュールはインストールされますが、それに対しては機能しません:cpanperldoc

$ perldoc Text::Histogram
No documentation found for "Text::Histogram".*

ただし、次のように呼び出します。

$ man Text::Histogram

うまくいきます。

ファイルが非常に多様な場所に配置されていることを確認しているため、これに一般的な環境変数を設定することは ( perldocman ページで提案されているように) 実行可能ではないようです。.pm

これについてのヒントはありますか?

4

1 に答える 1

3

perldoc は、Perl モジュールのインクルード パス ( @INC) を検索します。perldoc がそれを見つけられない場合、perl はそれを見つけることができません。perl -wle 'use The::Module'perl がロードできるかどうか試してみてください。それ見つけることができれば、何か奇妙なことが起こっています。

サード パーティのプログラムを介してモジュールをインストールした場合 (cpan クライアントを使用しているだけであっても)、別の場所にインストールされているか、または使用している perl とは異なる perl を使用してインストールされている可能性があります。コマンドライン。これにはいくつかの理由がありますが、最も可能性が高いのは次の 3 つです。

  • あなたとは が異なり、別の の別PATHのコピーが見つかりました。cpanperl
  • cpan別のにインストールするようにクライアントを別の方法で構成していますPATH
  • cpan はホーム ディレクトリにインストールするように構成されており、別のユーザーとして実行されています。

モジュールにドキュメントがないという奇妙な可能性もあります。

モジュールを見つけるために perldoc が何をしているかを見ることができますperldoc -D The::Module(これは古いバージョンでは -v かもしれません)。

于 2012-03-03T20:59:17.437 に答える