perl无法识别perforce命令

时间:2013-09-23 06:56:26

标签: perl perforce

我正在尝试编写Perl程序以在Perforce中进行更改。 当我从命令行使用P4运行Perforce命令时,这些工作正常但是当我在perl程序中编写“使用P4”时,它无法识别P4类。 是否有任何可能缺少的配置?

P.S> - 因为它从命令行工作正常,我假设我的路径设置正确。

这是我得到的错误: 无法通过包“P4”找到对象方法“new”(也许你忘了在perlP4.pl第5行加载“P4”?)。

这是我的计划:

use strict;
push ( @INC,"C:\Program Files\Perforce");
use lib "C:\Program Files\Perforce";
use P4; # a p4perl module
my $p4 = new P4;

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

P4模块存储在P4.pm文件中。尝试在系统中找到此模块以查看它是否已安装。

如果未安装,请先安装。

http://www.perforce.com/perforce/doc.current/manuals/p4script/02_perl.html

答案 1 :(得分:0)

我有一段时间没有使用Perforce,所以我可能在这里过时了:

P4模块需要使用Perforce C ++ API库,并且P4模块有很多编译的C编程。在Windows中,大部分内容已经编译(我看到你正在使用Windows)。

仔细阅读安装说明 。确保安装了API库以及安装了P4模块(及其所有子模块)。由于use P4;本身不会抛出错误,我假设已经安装了P4模块的Perl部分。问题是与P4 C ++ API进行通信。

sub new子例程不在P4.pm模块中,而是P4.xs XS包的一部分。如果您安装了P4.pm,但没有正确设置API,则会收到错误。

答案 2 :(得分:0)

在命令提示符下运行以下命令:

    perl -MP4 -e "print P4::Identify()"

如果您尚未安装p4perl模块,您将看到:

Can't locate P4.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/....
.... (snip) ....
BEGIN failed--compilation aborted.