sh-3.2# ./backup.pl 
Can't locate Net/RawIP.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at ./web-scanner.pl line 12.
BEGIN failed--compilation aborted at ./web-scanner.pl line 12.
sh-3.2# perl -MCPAN -e "install Net::RawIP" 
CPAN: Storable loaded ok (v2.19)
Going to read /var/root/.cpan/Metadata
  Database was generated on Mon, 13 Dec 2010 01:34:15 GMT
Net::RawIP is up to date (0.25).

2 ответа2

1

Модуль не установлен там, где ищет Perl. Перед запуском скрипта вы можете попробовать использовать PERL5LIB или PERLLIB по пути, где установлен Модуль. Если вы работаете с bash, вы можете поместить в ваш .bashrc следующее:

export PERL5LIB=$PERL5LIB:/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level

В качестве альтернативы вы можете добавить:

use lib '/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level';

в вашем Perl-скрипте, но если у вас много Perl-скриптов, это может быть не масштабируемым.

Кроме того, вы можете установить модуль в один из каталогов, который находится в @INC.

Или вы можете обмануть и символически связать каталог с одним из каталогов, который находится в @INC.

0
sh-3.2# find / -name 'RawIP.pm'
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Net/RawIP.pm
/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/RawIP.pm
find: /private/var/folders/xN/xNX35epaFXiyQZnuMC3a3U+++TI/-Tmp-/.truecrypt_aux_mnt1: No such file or directory
/private/var/root/.cpan/build/Net-RawIP-0.25-e5Jys4/blib/lib/Net/RawIP.pm
/private/var/root/.cpan/build/Net-RawIP-0.25-e5Jys4/lib/Net/RawIP.pm
/Users/orly/.Trash/RawIP.pm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .