相关疑难解决方法(0)

为什么我的Perl程序抱怨"无法在@INC中找到URI.pm"?

我是Perl的新手.运行脚本时出现以下错误:

Can't locate URI.pm in @INC (@INC contains: /usr/local/packages/perl_remote/5.6.1/lib/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl .) at (eval 2) line 3.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/HTTP/Request.pm line 3.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10.
BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10.
Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26.
BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26.
Compilation failed in require at txotf_0_install.pl line 35.
BEGIN failed--compilation aborted at txotf_0_install.pl line 35.

可能的原因是什么,以及如何让脚本工作.任何帮助将不胜感激.

installation perl module

3
推荐指数
2
解决办法
2万
查看次数

在Perl中使用XPath

我试图使用Perl 复制我的C#/ XPath代码在Linux上的作用.我复制并粘贴了Perl和XML中的例8-6中的代码.如果我理解正确,我应该能够运行该Perl代码,将此代码放在终端中

xmlPerl.pl mydatafile.xml "/inventory/category/item/name"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行Perl文件时,它不起作用.这是错误:

[root@Perl ~]# perl xmlPerl.pl
Can't locate XML/XPath.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at xmlPerl.pl line 3.
BEGIN failed--compilation aborted at xmlPerl.pl line 3.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我认为它与我的代码开头的XML和XPath名称有关.我是否需要安装一些东西才能使用XPath框架?我在RedHat 5.5上运行.

perl xpath

3
推荐指数
1
解决办法
1万
查看次数

Perl:错误消息:无法在@INC中找到...

我正在尝试编译这个脚本,但我有这样的信息:

无法在C中找到@INC中的Email/Address.pm(@INC包含:C:/ strawberry/perl/lib C:/ strawberry/perl/site/lib C:\ strawberry\perl\vendor\lib.):/strawberry/perl/lib/Regexp/Common/Email/Address.pm第9行.BEGIN失败 - 编译在C:/ strawberry/perl/lib/Regexp/Common/Email/Address.pm第9行中止.编译失败需要在(eval 1)第1行.BEGIN失败 - 编译在C:\ examples\script2.pl第4行中止.

我不明白,因为我真的有这个根

C:/strawberry/perl/lib/Regexp/Common/Email/Address.pm

有人在我尝试编写我的脚本时知道为什么会出现此错误消息吗?

非常感谢


我试着用这句话:

使用lib'C:/ strawberry/perl/lib/Regexp/Common/Email';

并将这两句话作为评论:

use Regexp::Common qw[Email::Address];
  use Email::Address
Run Code Online (Sandbox Code Playgroud)

然后我收到这个错误

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.
Run Code Online (Sandbox Code Playgroud)

我看了一下perldiag

全局符号"%s"需要显式包名(F)您说过"use strict"或"use strict vars",表示所有变量必须是词法范围(使用"my"或"state"),声明预先使用"我们的",或明确限定说明全局变量所在的包(使用"::").

但我发现它对我来说有点理论上我明白你必须在代码的乞讨时使用句子'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(", ", …
Run Code Online (Sandbox Code Playgroud)

perl compiler-errors

3
推荐指数
1
解决办法
7004
查看次数

perl库路径

我需要检索perl库统计信息和分布所在的路径。该路径是运行脚本所必需的。我在计算机集群上。谁能帮我?

谢谢

unix linux perl

3
推荐指数
2
解决办法
3万
查看次数

运行Perl脚本时在Text/CSV.pm上出错

运行从Oracle数据库获取内容并将结果导出为CSV的Perl脚本时,尝试通过命令行运行时出现此错误:

Can't locate Text/CSV.pm in @INC (@INC contains:
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2
/usr/lib/perl5/vendor_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.16.2
/usr/lib/perl5/5.16.2/x86_64-linux-thread-multi /usr/lib/perl5/5.16.2
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2 /usr/lib/perl5/site_perl .) at
./OracleScript.pl line 4. BEGIN failed--compilation aborted at
./OracleScript.pl line 4.
Run Code Online (Sandbox Code Playgroud)

我解释这意味着没有安装模块.所以,我尝试使用以下命令安装它:

/usr/bin/perl -MCPAN -e'install Text::CSV_pm'
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Database was generated on Mon, 06 Oct 2014 10:41:02 GMT Warning:
Cannot install Text::CSV_pm, don't know what it is. Try the command

    i /Text::CSV_pm/

to find objects with matching identifiers.
Run Code Online (Sandbox Code Playgroud)

任何人都能解释我的问题,以及如何解决这个问题?

linux oracle perl command-line

3
推荐指数
2
解决办法
1万
查看次数

为什么我的CGI脚本抱怨"无法在@INC中找到CGI/Session.pm"?

我有一个html文件,它将接受并发送登录名和密码.它被发送到login.cgi文件.

**

  • html文件

**

<form method="POST" action="login.pl">
<table >
<tr>
    <td>Username </td>
    <td bgcolor="lightgrey"><input type="text" name="usr" size="20"></td>
</tr>
<tr>
    <td>Password </td> 
    <td bgcolor="lightgrey"><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
    <td><input type="submit" id ="Login" value="Login" name="login"/> </td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

**

  • 特等

**

#!/usr/bin/perl

  # login.pl
  use CGI;
  use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
  use CGI::Session ( '-ip_match' );

  $q = new CGI;

  $usr = $q->param('usr');
  $pwd = $q->param('pwd');

  if($usr ne '')
  {
      # process the form
      if($usr eq "demo" and $pwd eq "demo")
      { …
Run Code Online (Sandbox Code Playgroud)

perl cgi

1
推荐指数
1
解决办法
2万
查看次数

Perl模块安装?

如何安装需要编译C代码的perl模块?我确实知道使用PPM和CPAN的一般安装.提前致谢.

perl

1
推荐指数
1
解决办法
246
查看次数

无法运行perl程序:无法使用perl5.8.4在@INC中找到Time/Piece.pm并且无法使用perl 5.12.3在@INC中找到DBI.pm

我有Solaris 10,我正在尝试运行Perl程序.

我安装了两个perl版本:

/usr/bin/perl 版本5.8.4

/usr/local/bin/perl 版本5.12.3

我已经安装了DBI软件包(它已安装在这里/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI/.packlist),我通过执行不同perl版本的Perl程序得到的问题是(在ubuntu中工作正常).

bash-3.00# perl temp.pl
Can't locate Time/Piece.pm in @INC (@INC contains: /usr/perl5/5.8.4/lib/sun4-   
solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int
/usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4- 
solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at    
temp.pl line 4.
BEGIN failed--compilation aborted at temp.pl line 4.

bash-3.00# /usr/local/bin/perl temp.pl
Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.12.3 
/sun4-solaris /usr/local/lib/perl5/site_perl/5.12.3 /usr/local/lib/perl5/5.12.3/sun4- 
solaris /usr/local/lib/perl5/5.12.3 /usr/local/lib/perl5/site_perl .) at temp.pl line5.
BEGIN failed--compilation aborted at temp.pl line 5.

我已经尝试了很多方法,但没有得到如何在solaris上运行我的Perl程序.有人可以帮忙吗.

以下是我的计划.实际上它是由@Borodin重新定义的.非常感谢他.

use strict;
use warnings;

use …
Run Code Online (Sandbox Code Playgroud)

perl solaris perl-module solaris-10

1
推荐指数
1
解决办法
1万
查看次数

在 @INC 中找不到 new.pm

我尝试在其他 shell 脚本中运行 perl 脚本,但遇到了以下问题:

无法在@INC中找到new.pm(@INC包含:/usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/ perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl

我已经专门设置了附加本地 Perl 脚本的路径,即我的 Perl 脚本(test.pl)中的“new.pm”,但错误仍然出现。(perl -V) 显示我本地 Perl 的路径。我还使用命令“PERL5LIB”在我的配置文件中进一步设置了“new.pm”的路径。

但是,当我在命令行上运行脚本时:

./test.pl 
Run Code Online (Sandbox Code Playgroud)

它确实有魅力。

附言。she-bang 线已正确设置。附言。平台:linux,OS_vers=2.6.32-5-amd64

perl

1
推荐指数
1
解决办法
1万
查看次数

无法在@INC中找到WWW/Mechanize.pm

我试图让我在网站上找到的示例代码工作:

    #!/usr/bin/perl

    use v5.10;
    use WWW::Mechanize;
    use WWW::Mechanize::TreeBuilder;

    my $mech = WWW::Mechanize->new;
    WWW::Mechanize::TreeBuilder->meta->apply($mech);

    $mech->get( 'http://htmlparsing.com/' );

    # Find all <h1> tags
    my @list = $mech->find('h1');

    # or this way

    # Now just iterate and process
    foreach (@list) {
        say $_->as_text();
    }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到此消息:

Can't locate WWW/Mechanize.pm in @INC (@INC contains: /Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16 /Network/Library/Perl/5.16/darwin-thread-multi-2level /Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2 /System/Library/Perl/5.16/darwin-thread-multi-2level /System/Library/Perl/5.16 /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level /System/Library/Perl/Extras/5.16 .) at test2.pl line 4.
BEGIN failed--compilation aborted at test2.pl line 4.
Run Code Online (Sandbox Code Playgroud)

有没有人对正在发生的事情有任何想法?

perl

1
推荐指数
1
解决办法
1万
查看次数