このスクリプトをコンパイルしようとしていますが、次のメッセージがあります。
@INCでEmail/Address.pmが見つかりません(@INCに含まれるもの:C:/ skeleton / perl / lib C:/ woven / perl / site / lib C:\新たに\perl \ vendor \ lib。)C: /skeleton/perl/ lib / Regexp / Common / Email /Address.pm9行目require at(eval 1)line 1。BEGINfailed--コンパイルはC:\ examples\script2.pl行4で中止されました。
私は本当にこのルートを持っているのでわかりません
C:/skeleton/perl/lib/Regexp/Common/Email/Address.pm
スクリプトをコンパイルしようとすると、なぜこのエラーメッセージが表示されるのか誰かが知っていますか?
どうもありがとう
私はこの文を使おうとしました:
lib'C:/ skeleton / perl / lib / Regexp / Common/Email'を使用します。
そしてコメントとしてこれらの2つの文を置きます:
use Regexp::Common qw[Email::Address];
use Email::Address
次に、このエラーが発生します
Global symbol "%RE" requires explicit package name at C:\examples\script2.pl lin
e 10.Execution of C:\examples\script2.pl aborted due to compilation errors.
perldiagを見てみました
グローバルシンボル「%s」には明示的なパッケージ名が必要です(F)「usestrict」または「usestrict vars」と言いました。これは、すべての変数が字句スコープ("my"または"state"を使用)である必要があることを示しています。事前に「our」を使用するか、グローバル変数がどのパッケージにあるかを明示的に指定します(「::」を使用)。
しかし、コードの最初に「use」という文を使用してパッケージを使用する必要があることを理解しているので、少し理論的だと思います。
ちなみにこれは私のコードです:
use Regexp::Common qw[Email::Address];
use Email::Address;
while (<>) {
my (@found) = /($RE{Email}{Address})/g;
my (@addrs) = map $_->address, Email::Address->parse("@found");
print "X-Addresses: ", join(", ", @addrs), "\n";
}
このコードは、前に尋ねた質問から取得します。