7

私は自分のモジュールを作成しています。それを呼び出しましょうX::Y。もちろん、モジュールはファイルにありますX/Y.pm

Y外部プログラムを呼び出す必要があるとしましょうprog。理想的には入れたいのでprogX走れX/progます。ハードコードX/progのフルパスを使用せず、現在の作業ディレクトリセットに関係なくモジュールを機能させたいのですが。

モジュール内からモジュールのフルパスを見つけるにはどうすればよいですか?それとも、これを行うためのより良い方法はありますか?

4

3 に答える 3

10

現在実行されているソースファイルへのフルパスは、Perlの__FILE__特別なリテラルによって提供されます。

PATHただし、外部プログラムが通常の場所にインストールされ、そこにあるパスがPerlコードで定数としてコード化されているか、環境変数に含まれていることを確認したいと思います。

于 2012-11-26T03:10:17.867 に答える
0

モジュールがロードされると、そのパスはグローバル%INC変数になります。それを調べるには、簡単な変換を行う必要があります。

  1. ::パッケージ名をに変更/
  2. 追加.pm

したがって、モジュールの場所を見つけるには、 をX::Y調べます$INC{"X/Y.pm"}

于 2012-11-26T04:32:44.857 に答える