.pl
を実行するいくつかのファイルを含むフォルダーがありますmain.pl
。require 'file.pl';
メインファイルの先頭で使用することで、これらを正常に機能させることができました。私もいくつかのモジュールを問題なく使用しました。
「自家製」モジュールを使用しようとしてuse Add::Location::CSearch qw(c_search);
いますが、それが使用されているファイルの先頭 (またはメイン ファイルの先頭) に追加してメイン ファイルを実行すると、次のCan't locate file.pl in @INC...
エラーが発生します。メインファイルのリストfile.pl
の最初のファイルです。require
私が理解していることから、行を追加した後、同じディレクトリ内use
のすべてを見つけようとします。require
エラー メッセージの(@INC contains: ...)
最後に、いくつかのライブラリ/モジュール フォルダーが一覧表示されます。また.
、現在のディレクトリの最後にもあります。
これでうまく説明できたと思います。それは紛らわしい!これがなぜ起こるのか、どのように解決するのかはわかりませんので、アイデアをいただければ幸いです。
編集:サンプルコード
main.pl
#!/usr/bin/perl
package testpack;
use lib '/hlib/...';
use Add::DB;
use List::Util qw(sum);
use List::MoreUtils qw(uniq);
use List::MoreUtils qw(firstidx);
use strict;
use warnings;
require 'file1.pl';
require 'file2.pl';
require 'file3.pl';
.
.
.
file1.pl
#!/usr/bin/perl
package testpack;
use Add::Location::CSearch qw(c_search);
これが問題のすべてです...残りのファイルには、サブルーチンなどを呼び出す作業コードがあります。