Perl: mensagem de erro: não é possível localizar… em @INC
Estou tentando compilareste scrip, mas tenho esta mensagem:
Não é possível localizar Email / Address.pm em @INC (@INC contém: C: / strawberry / perl / lib C: / strawberry / perl / site / lib C: \ strawberry \ perl \ vendor \ lib.) Em C: / strawberry / perl / lib / Regexp / Comum / E-mail / Endereço.pm linha 9. BEGIN falhou - compilação abortada na linha C: / strawberry / perl / lib / Regexp / Comum / E-mail / Endereço.pm 9. Falha na compilação requer na linha (eval 1) 1. BEGIN falhou - compilação abortada na linha C: \ examples \ script2.pl 4.
Eu não entendo porque eu tenho essa raiz
C: /strawberry/perl/lib/Regexp/Common/Email/Address.pm
Alguém sabe por que tenho essa mensagem de erro quando tento compilar meu script?
muito obrigado
Eu tentei usar esta frase:
use lib 'C: / strawberry / perl / lib / Regexp / Comum / Email';
e colocando como comentário estas duas frases:
use Regexp::Common qw[Email::Address];
use Email::Address
então eu recebo esse erro
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.
Eu dei uma olhadaperldiag
O símbolo global "% s" requer nome explícito do pacote (F) Você disse "use strict" ou "use strict vars", o que indica que todas as variáveis devem ser lexicamente definidas (usando "meu" ou "estado"), declaradas de antemão usando "nosso", ou explicitamente qualificado para dizer em qual pacote a variável global está (usando "::").
mas eu acho um pouco teórico para mim, eu entendo que você tem que usar pacotes usando a frase 'use' no começo do código.
Pela maneira como este é o meu código:
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";
}
Eu recebo este códigode uma pergunta que eu fiz antes.