首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当php执行脚本时找不到Perl模块

问当php执行脚本时找不到Perl模块
EN

Stack Overflow用户
提问于 2013-05-01 05:00:00
回答 2查看 1.3K关注 0票数 0

我通过php使用exec执行perl脚本,但是我收到一个错误,提示模块Net::DNS缺失。我以普通用户的身份安装了该模块,因此它位于/home/ user /perl5/i686-linux-thread-multi中,并且我在exec中使用了完整路径(/usr/bin/perl)。

我甚至尝试将/home/user/perl5/i686-linux-thread-multi目录添加到@INC,但脚本仍然抛出错误...

我还尝试将带有自定义安装路径的模块直接安装到/usr/lib/perl5/vendor_perl中,但这也没有解决问题。symlink也没有解决这个问题。

以下是错误消息

代码语言:javascript
复制
  Can't locate Net/DNS.pm in @INC (@INC contains: 
/usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl 
/usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl

任何关于如何解决这个问题的想法,都是关于如何处理这个问题的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-01 05:16:34

在exec之前,添加:

代码语言:javascript
复制
$ENV{PERL5LIB} = "$ENV{PERL5LIB}:/home/user/perl5/i686-linux-thread-multi";

为什么使用use lib不起作用(对于pavel的评论):

代码语言:javascript
复制
#!/usr/bin/env perl
use strict;
use warnings;
use lib "hate_you";
use Data::Dumper;

print Dumper(\@INC);

print "In sub process....\n";
exec(qq{perl -MData::Dumper -e "print Dumper(\@INC);"});

将在我的机器上打印:

代码语言:javascript
复制
$VAR1 = [
          'hate_you',
          '/etc/perl',
          '/usr/local/lib/perl/5.14.2',
          '/usr/local/share/perl/5.14.2',
          '/usr/lib/perl5',
          '/usr/share/perl5',
          '/usr/lib/perl/5.14',
          '/usr/share/perl/5.14',
          '/usr/local/lib/site_perl',
          '.'
        ];
In sub process....

    $VAR1 = '/etc/perl';
    $VAR2 = '/usr/local/lib/perl/5.14.2';
    $VAR3 = '/usr/local/share/perl/5.14.2';
    $VAR4 = '/usr/lib/perl5';
    $VAR5 = '/usr/share/perl5';
    $VAR6 = '/usr/lib/perl/5.14';
    $VAR7 = '/usr/share/perl/5.14';
    $VAR8 = '/usr/local/lib/site_perl';
    $VAR9 = '.';
票数 2
EN

Stack Overflow用户

发布于 2013-05-01 05:59:00

另一种方法是在脚本中包含您的个人库,使其独立于环境集:

代码语言:javascript
复制
use lib qw(/home/user/perl5/i686-linux-thread-multi);

use Net::DNS;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16308881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档