.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);
これが問題のすべてです...残りのファイルには、サブルーチンなどを呼び出す作業コードがあります。