标签: perl-module

为什么 Perl 模块 Crypt::SSLeay 在加载时出错?

我试图让 WWW::Mechanize 使用 https 登录到 Yahoo;但是,它需要使用 Crypt::SSLeay 来通过 https 发送。

Crypt::SSLeay 安装成功,并且系统上已经安装了 openssl。

但是,它在加载时给出错误:


Can't load '/home/gen19/perl5/lib/perl5/lib/site_perl/5.10.1/i686-linux//auto/Crypt/SSLeay/SSLeay.so' for module Crypt::SSLeay: /home/gen19/perl5/lib/perl5/lib/site_perl/5.10.1/i686-linux//auto/Crypt/SSLeay/SSLeay.so: undefined symbol: PL_sv_undef at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229. at /home/gen19/lwp4 line 15 Compilation failed in require at /home/gen19/lwp4 line 15. BEGIN failed--compilation aborted at /home/gen19/lwp4 line 15.


Crypt::SSLeay安装成功,可以识别openssl的安装(这里):

perl Makefile.PL
=======================================================
Only one OpenSSL installation found at /usr
Consider running 'perl Makefile.PL --default' the next
time Crypt::SSLeay is upgraded to select this directory
automatically thereby avoiding the following prompt.
======================================================= …
Run Code Online (Sandbox Code Playgroud)

perl openssl module perl-module

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

在 Windows 中手动安装 Perl 模块

我曾多次尝试(未成功)手动安装 CPAN 中找到的 Perl 模块 (Win32-Printer-0.9.1),但未包含在 PPM 存储库中。据我所知,该模块必须下载并解压。我知道您必须运行包含的 MakeFile.pl。

我知道 nmake 以某种方式参与其中,但尽管尝试遵循网上找到的说明,但我一直无法让它工作。

我在 Windows 上使用 ActivePerl 5.12.2。

我真的不明白为什么会这么复杂!

perl perl-module

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

如何使用 Strawberry 在 Windows 上编译 Perl 模块?

这更多的是一个公开的讨论和结论,而不是一个真正的问题,希望它能在某个时候帮助别人。

我正在寻找如何在与互联网断开连接的服务器上制作 Perl 模块(否则答案很简单:使用cpan),所以我唯一的选择是直接在服务器上手动编译从互联网(CPAN 或其他)下载的模块。

问题是,在标准 Windows 服务器上,没有编译器。那么如何制作模块呢?

windows perl compilation perl-module strawberry-perl

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

perl中全局变量的线程安全

我有以下问题:

  1. perl 中如何执行全局代码和初始化全局变量?
  2. 如果我写 use package_name; 在多个包中,每次都会执行全局代码吗?
  3. 这样定义的全局变量线程安全吗?

perl perl-module

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

使用 Text::CSV_XS 模块将列插入 Perl 中的 CSV 文件

如何使用 Text::CSV_XS 模块将列添加到 CSV 文件?

模块中的打印例程仅将数组写入一行。如果我有一个数组,如何将其作为列写入文件?我已经写了下面的代码

open my $outFH, ">", $outFile or die "$outFile: $!";
$outFilecsv = Text::CSV_XS->new ({ binary => 1, eol => $/ });              
@column = read_column($inFile, $i);
$outFilecsv->print($outFH, \@column)or $outFilecsv->error_diag;
Run Code Online (Sandbox Code Playgroud)

其中 read_column 方法读取返回另一个 csv 文件中的指定列。

csv perl perl-module export-to-csv

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

未定义的子例程 &PDL::divide

我正在以下代码中尝试 Perl 的 PDL:

#!/usr/bin/perl  -w
use strict;
use PDL::Core qw(pdl);
use PDL::Math qw(isfinite);
use PDL::Primitive qw(statsover);


my $div = 4;
my @array1 = (0..10);
my $pdl_array = log(pdl(@array1)/$div);
$pdl_array->where(!isfinite($pdl_array)) .= 0;
my($mean,$stdev) = statsover($pdl_array);
die $pdl_array,"\n",$mean," ",$stdev,"\n";
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

未定义的子例程 &PDL::divide 在 ./compare_const.pl 第 10 行调用。

有什么提示吗?非常感谢。

perl perl-module pdl

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

Excel::Writer::XLSX - 如何冻结第一行

我正在使用 perl 模块 Excel::Writer::XLSX。以下代码片段在结果文件中创建标题行。

use strict;
use warnings;
use Excel::Writer::XLSX;

my $workbook  = Excel::Writer::XLSX->new("myExcel.xlsx");
my $worksheet = $workbook->add_worksheet("Sheet1");
my $ccnt = 0;
foreach my $entry (('Head1','Head2','Head3')) {
    $worksheet->write(0,$ccnt++,$entry);
}
$workbook->close();
Run Code Online (Sandbox Code Playgroud)

现在,我想修复第一行,使其在向下滚动时保持可见。尽管 CPAN 上有很多很好的文档,但我没有找到如何管理它。

perl perl-module

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

CentOS8下如何安装perl DateTime模块。yum install "perl(DateTime)" 在 CentOS7 中有效,但在 8 中无效

有一些 Perl 模块以前可以通过以下方式安装: yum install "perl(DateTime)" 在 CentOS7 下。在 CentOS8 中,我收到错误消息:

No match for argument: perl(DateTime)
Run Code Online (Sandbox Code Playgroud)

我对 perl(Template)、perl(YAML::XS)、perl(Crypt::Eksblowfish::Bcrypt) 和 perl(JSON::XS) 有同样的问题

我尝试搜索:

yum provides *DateTime*
Run Code Online (Sandbox Code Playgroud)

但我在那里也找不到任何东西。

perl perl-module centos8

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

在shell脚本中调用perl子例程

我制作了一个Perl模块,MyModule.pm其中包含一些getText我想在shell脚本中调用的子例程。我尝试了以下方式,但它给出了错误;

SEC_DIR=`perl -MMyModule -e 'getText'`; # line 1
echo $SEC_DIR
exit 0
Run Code Online (Sandbox Code Playgroud)

返回错误;

Can't locate MyModule.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .).
Run Code Online (Sandbox Code Playgroud)

BEGIN失败-编译中止。

PS:.pm文件和.sh在同一位置。我尝试过的其他选择;

第1行:

SEC_DIR=`perl -MMyModule -e '&getText'`;
SEC_DIR=`perl -MMyModule -e 'use MyModule; getText'`;
SEC_DIR=`perl -e 'use MyModule; getText'`;
Run Code Online (Sandbox Code Playgroud)

shell perl perl-module

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

Perl中的Hashmap

在使用FRONTIER :: CLIENT模块在Perl中编写客户端API.我试图在Perl中执行类似下面的操作:

HashMap<Integer, String> message = (HashMap<Integer, String>)client.execute("APIWrapper.login"); 
System.out.println(message.get(1000));
Run Code Online (Sandbox Code Playgroud)

如何在Perl中实现相同的想法?

arrays perl perl-module hashmap

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