相关疑难解决方法(0)

如何获取正在执行的Perl脚本的完整路径?

我有Perl脚本,需要在执行期间确定脚本的完整路径和文件名.我发现,根据你调用脚本的方式$0不同而有时包含fullpath+filename,有时只是filename.因为工作目录也可以变化,所以我想不出可靠地获取fullpath+filename脚本的方法.

有人有解决方案吗?

perl location path

164
推荐指数
9
解决办法
18万
查看次数

如何在不在@INC中的目录中"使用"Perl模块?

我的脚本的父目录中有一个模块,我想'使用'它.

如果我做

use '../Foo.pm';
Run Code Online (Sandbox Code Playgroud)

我得到语法错误.

我试着这样做:

push @INC, '..';
use EPMS;
Run Code Online (Sandbox Code Playgroud)

并且..显然没有出现在@INC中

我要疯了!这有什么不对?

perl module relative-path

51
推荐指数
4
解决办法
7万
查看次数

在Perl中,无法在@INC错误中找到packgeName.pm

这是一个math.pm具有2个基本功能的模块add和multiply:

package Math;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT_OK = qw(add multiply); 

sub add {
my ($x, $y) = @_;
return $x + $y;
}

sub multiply {
my ($x, $y) = @_;
return $x * $y;
}

1;
Run Code Online (Sandbox Code Playgroud)

这是script.pl调用add函数的脚本:

#!/usr/bin/perl
use strict;
use warnings;

use Math qw(add);
print add(19, 23);
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误:

无法在@INC中找到math.pm <@INC包含:C:/ perl/site/lib C:/ perl/lib.>在C:\ programs\script.pl第5行.BEGIN失败 - 编译中止C:\ programs\script.pl第5行.

如何解决这个问题呢?

perl module package

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

Perl重定向到错误的执行路径

我在使用Perl时遇到了一些问题.在执行期间,我收到此错误.

Can't locate XML/LibXML/NodeList.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/lib64/perl5/XML/LibXML.pm line 25.
Run Code Online (Sandbox Code Playgroud)

但当我尝试使用locate命令找到此文件时,我发现它. /usr/local/lib/perl5/site_perl/5.18.0/x86_64-linux/XML/LibXML/目录.

我已经安装了不同的perl软件包,它们都安装正确.如果我将单个文件放在指定的位置,那么它会抱怨另一个文件.所以手动放置文件不是一个好主意.

那么我如何改变它的路径,以便它可以从正确的目录执行文件?

编辑

Can't locate loadable object for module XML::LibXML in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/lib64/perl5/XML/LibXML.pm line 154
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] BEGIN failed--compilation aborted at /usr/local/lib64/perl5/XML/LibXML.pm line 154.
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] Compilation failed in require at /var/www/cgi-bin/astpp/astpp-cdr-xml.cgi line 23. …
Run Code Online (Sandbox Code Playgroud)

perl

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

标签 统计

perl ×4

module ×2

location ×1

package ×1

path ×1

relative-path ×1