标签: perl-module

从当前目录调用perl模块

我需要在远程服务器上测试perl脚本.我试过运行它,但我得到了错误

Can't locate Date/Manip.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . 
Run Code Online (Sandbox Code Playgroud)

所以我下载了DateManip.pm文件,并尝试将其复制到上述位置之一.但我没有权限在任何这些地方复制文件.有没有办法在我自己的目录中有这个*.pm文件并从那里调用它或者我是否必须将它放在其中一个位置?

perl perl-module

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

如何在Win 64上安装Crypt :: SSLeay?

我有64位Vista中的ActiveState Perl的"v5.10.0为MSWin32-64的多线程构建",我试图让地穴:: SSLeay的用的版本一起安装的软件包libeay32.dllssleay32.dll.

我之前在使用'uwinnipeg'服务器的Win32机器上完成了这个,但是我遇到了64位系统的问题.

ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
ppm install failed: The PPD does not provide code to install for this platform

我尝试了直接ppm安装,似乎工作,但验证失败,我没有看到任何dll文件的迹象?

C:\Perl64\bin>ppm install Crypt::SSLeay 
Downloading ActiveState Package Repository packlist...done 
Updating ActiveState Package Repository database...done 
Syncing site PPM database with .packlists...done 
No missing packages to install 
C:\Perl64\bin>ppm verify Crypt::SSLeay 
ppm verify failed: Package 'Crypt::SSLeay' is not installed 

有谁知道我在哪里/如何获得与我的PC兼容的版本?

perl 64-bit openssl perl-module activestate

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

如何在Perl中将数字转换为英文形式?

我需要一个Perl脚本,它将数字作为输入示例222,它应该输出为二百二十二.

perl cpan numbers perl-module

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

unpack函数没有给出类似的结果

我有一个二进制文件,并获得我使用"解包"功能的内容.

我的脚本可以运行32位exe或64位exe.因此我使用了以下代码:

if ( $ENV{PROCESSOR_ARCHITECTURE} eq 'x86' )
{
    @data = unpack( "LL8", $binary );
} 
else 
{
    @data = unpack( "Q8", $binary );
} 
    print Dumper \@data;  
Run Code Online (Sandbox Code Playgroud)

但是当我使用32位Active Perl和64位Active perl编译器执行相同操作时,我得到的结果不同:

32位:

$ VAR1 = [129864071,0,47193587,0,16448777,0,41067198,0,129];

64位:

$ VAR1 = [129864071,47193587,16448777,41067198,129,365173507,25208052,152155982]

造成这种差异的原因是什么?如何在仍然使用32位无符号长和64位无符号四元组值的同时使它们相似?

perl perl-module perl-data-structures

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

无法安装SOAP :: Lite

我在安装SOAP :: Lite时遇到问题

我在CentOS 5.9上使用perl,v5.8.8

我收到一个错误:

Failed Test                 Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/SOAP/Transport/HTTP/CGI.t    2   512     2    2 100.00%  1-2
6 tests and 25 subtests skipped.
Failed 1/33 test scripts, 96.97% okay. 2/854 subtests failed, 99.77% okay.
make: *** [test_dynamic] Error 255
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force
Run Code Online (Sandbox Code Playgroud)

如何修复以便它可以安装SOAP :: Lite?

全输出:

cp lib/SOAP/Lite.pm blib/lib/SOAP/Lite.pm
cp lib/SOAP/Fault.pod blib/lib/SOAP/Fault.pod
cp bin/SOAPsh.pl blib/script/SOAPsh.pl
/usr/bin/perl -MExtUtils::MY -e …
Run Code Online (Sandbox Code Playgroud)

perl cpan perl-module

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

我怎么知道Perl模块的安装位置?

我想知道IO :: Socket :: SSL模块的位置,或者更具体地说,知道SSL.pm文件所在的位置.我已经知道我已经安装了IO :: Socket :: SSL因为use IO::Socket::SSL有效.

perl perl-module

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

Perl有一个类似于docopt的模块吗?

是否有任何Perl模块具有与Docopt类似的功能,或者是否有为其开发的端口?

Docopt是一个模块,它通过解析使用和选项消息为命令行调用创建接口.

您可以创建标准帮助消息

    Naval Fate.

    Usage:
      naval_fate ship new ...
      naval_fate ship  move   [--speed=]
      naval_fate ship shoot  
      naval_fate mine (set|remove)   [--moored|--drifting]
      naval_fate -h | --help
      naval_fate --version

    Options:
      -h --help     Show this screen.
      --version     Show version.
      --speed=  Speed in knots [default: 10].
      --moored      Moored (anchored) mine.
      --drifting    Drifting mine.

然后为您创建选项处理程序,而不是使用Getopt :: Long再次编写它们,并且还处理命令解析(我使用App :: Cmd).

似乎它始于Python,现在以许多其他语言实现.

http://docopt.org/

https://github.com/docopt/docopt

perl perl-module

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

为什么Perl模块区分大小写?

虽然我没有看到任何具有相同名称但具有不同情况的模块,但仅仅是为了好奇,我试图安装Log :: Log4perl并且在安装期间我拼错它'Perl'代替'perl':

% cpan -i Log::Log4Perl 
Cannot install Log::Log4Perl, don't know what it is.
Run Code Online (Sandbox Code Playgroud)

当我使用正确的名字时,情况进展顺利:

% cpan -i Log::Log4perl 
Run Code Online (Sandbox Code Playgroud)

相同的名称但不同的情况可能会产生冲突 这背后有什么具体原因吗?

perl cpan perl-module

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

cc:尝试执行'cc1plus'时出错:execvp:没有这样的文件或目录

尝试使用此命令安装perl的Encode :: Detect模块时出现以下错误

perl -MCPAN -e "install Encode::Detect"
Run Code Online (Sandbox Code Playgroud)

错误信息

cc: error trying to exec 'cc1plus': execvp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

perl perl-module

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

如何检测模块中的"严格"编译指示?

通常,当我建立在Perl的数据结构,我最终不得不从声明它%leaf%root,所以我一直有一个模块,让我从建立修修补补
$seed$seed->trunk->branch->leaf.

使用AUTOLOADnew子程序并不困难.我对SO的问题是如何检测是否正在使用'strict'编译指示,以便模块以不同的模式运行,这需要在使用之前"声明"变量,因此我不会意外地为$seed->drunk当我使用strict时 - 假设模块被调用branch,这是模块使用的有效语法

$seed->declare('trunk');
$seed->trunk(new branch);

$seed->trunk->declare('leaf');
$seed->trunk->leaf("value");
Run Code Online (Sandbox Code Playgroud)

如何从模块中检测调用程序中的严格编译指示是否有效?

可能这是不可能的 - 在这种情况下,我必须使用静态变量来处理与模块无关的编译指示.

EDITED/POSTSCRIPT:

我编写了初始版本,没有检查'严格'或实现'declare'子程序,并意识到自动加载器不提供足够简单的用户语法,如果它通过引用操作,所以我写它来检查第一个参数并分配传递给对象引用的哈希表中的元素的值,否则如果没有参数,则返回指定元素的值.

所以我发布了分支模块的代码以满足您的好奇心.请注意,我还没有实施严格检查.

package branch;

sub new
{
    my $type = shift;
    my $self = { };
    bless $self, $type;
    return $self;
}

sub DESTROY
{
    my $self = shift;
    %$self = undef;
}

sub AUTOLOAD
{
    my $self = shift;
    my $value = shift;

    my $sub …
Run Code Online (Sandbox Code Playgroud)

perl perl-module

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