标签: perl-module

Perl XS和Inline :: C

使用XS和Inline :: C模块有什么区别?有人在这个问题中提到了这一点,让我很好奇.

perl perl-module xs

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

你会推荐哪种Perl模块用于JSON操作?

像往常一样,我很乐意处理CPAN,因为它得到了我们所需要的一切.像往常一样,我迷失了,因为有很多东西.

我可以自己找到核心JSON,并感受到JSON::Tiny另一个人的热情.

我的需求非常简单(从Open Library API解析东西),也许有一天会暴露我们自己的数据.

你喜欢这个任务的其他模块吗?

perl json cpan perl-module

12
推荐指数
5
解决办法
9241
查看次数

如何从模块的CPAN页面判断它是否在核心发行版中?

例如,通过去当时间上search.cpan.org ::高分辨率文件,有没有在页面本身现在模块为核心的Perl发行版的一部分一些指示?我知道,我通常能找到了一些google搜索,但我想知道是否有更简单的方法.

perl cpan perl-module perl-core

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

ListUtil.c:可加载库和perl二进制文件不匹配(获取握手键0xdb00080,需要0xdb80080)

出于某种原因,每当我运行任何Perl模块(如cpanm)时,我都会得到这样的响应:

ListUtil.c: loadable library and perl binaries are mismatched (got         
handshake key 0xdb00080, needed 0xdb80080)
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会这样.似乎没有任何额外的堆栈跟踪,即使有很多关于此错误的错误报告和问题,我也无法找到解决方案.我正在运行Ubuntu 17.04.

编辑:我正在运行Ubuntu附带的默认Perl安装.

ubuntu perl perl-module cpanm

12
推荐指数
3
解决办法
8373
查看次数

是否有任何Perl模块可以阻止我添加"或死"到任何可能失败的东西?

我正在编写运行各种外部命令的代码以及可能失败的各种文件系统命令.

是否有任何模块可以省去添加or die任何可能失败的东西的麻烦?

我希望能够将以下内容包装成以下内容,而不是:

mkdir $dirname or die "can't create directory $dirname";

system("some external command") or die "can run some external command";
Run Code Online (Sandbox Code Playgroud)

我明白了:

some_wrapper_code {
    mkdir $dirname;

    system("some external command");
}
Run Code Online (Sandbox Code Playgroud)

如果mkdir失败,它会告诉我故障已经发生mkdir,如果system失败,它会告诉我故障已经发生system.

error-handling perl perl-module

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

Perl的网::( SSH vs SSH2 vs OpenSSH) - 我该如何比较它们?

希望通过Perl脚本在远程计算机上执行perl脚本.出现一个选项是使用system()函数并创建一个ssh密钥,因此不需要密码.这引出了我对这个问题的关注,另一个选择似乎是安装和运行其中一个perl模块:

除了使用的协议,我还应该与这些Perl模块进行比较?

ssh perl perl-module

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

Perl构造函数应该返回一个undef或"无效"对象吗?

问题:

什么被认为是"最佳实践" - 以及为什么 - 在构造函数中处理错误?

"最佳实践"可以引自施瓦茨,或50%的CPAN模块使用它等等; 但我对任何人都有充分理由的意见感到高兴,即使它解释了为什么常见的最佳实践并不是真正的最佳方法.

至于我自己对该主题的看法(通过Perl中的软件开发多年来了解),我在perl模块中看到了三种主要的错误处理方法(在我看来从最好到最差列出):

  1. 构造一个对象,设置一个无效的标志(通常是" is_valid"方法).通常通过类的错误处理与设置错误消息相结合.

    优点:

    • 允许标准(与其他方法调用相比)错误处理,因为它允许$obj->errors()在错误的构造函数之后使用类型调用,就像在任何其他方法调用之后一样.

    • 允许传递其他信息(例如> 1错误,警告等...)

    • 允许轻量级的"重做"/"fixme"功能,换句话说,如果构造的对象非常繁重,许多复杂的属性100%总是正常,并且它无效的唯一原因是因为某人输入了不正确的日期,你可以简单地做" $obj->setDate()"而不是再次重新执行整个构造函数的开销.这种模式并不总是需要,但在正确的设计中非常有用.

    缺点:没有我知道的.

  2. 返回" undef".

    缺点:无法实现第一个解决方案的任何优点(全局变量之外的每个对象错误消息和重型对象的轻量级"fixme"功能).

  3. 死在构造函数内部.在一些非常狭窄的边缘情况之外,我个人认为这是一个可怕的选择,有太多理由列出这个问题的边缘.

  4. 更新:为了清楚,我认为(非常有价值和一个伟大的设计)解决方案有一个非常简单的构造函数,它根本不会失败,而且是一个繁重的初始化方法,其中所有错误检查都只是其中任何一个的子集出于此问题的目的,情况#1(如果初始化程序设置错误标志)或情况#3(如果初始化程序死亡).显然,选择这样的设计,你会自动拒绝选项#2.

error-handling perl exception-handling perl-module

10
推荐指数
3
解决办法
2749
查看次数

如何摆脱'名称...只使用一次:可能错误...'?

use YAML::XS;
local $YAML::XS::DumpCode=1;
...
Run Code Online (Sandbox Code Playgroud)

我收到警告:

Name "YAML::XS::DumpCode" used only once: possible typo at ..
Run Code Online (Sandbox Code Playgroud)

好吧,我知道我可以压制这个具体的警告,但它有点难看.我做错了吗?我不习惯被警告:)

perl perl-module

10
推荐指数
2
解决办法
8117
查看次数

Perl,如何确定变量值是否为数字?

是否有一种独特的方法来确定变量值是否为数字,因为这些值也可以是科学记数法(例如,5.814e-10)?

regex perl numbers perl-module

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

Linux:如何安装DBD :: Pg模块?

已经安装了Postgres DB.我没有使用系统perl我在"/ srv/data203806/Migration/CPAN/localperl/bin"中安装了另一个perl.当我尝试安装时,它要求PATH TO pg_config:

[root1@frmrszvwb023 bin]# ./cpan install DBD::Pg
Reading '/root/.cpan/Metadata'
  Database was generated on Fri, 07 Mar 2014 03:53:02 GMT
Running install for module 'DBD::Pg'
Running make for T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz
Checksum for /root/.cpan/sources/authors/id/T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz ok

  CPAN.pm: Building T/TU/TURNSTEP/DBD-Pg-3.0.0.tar.gz

    Configuring DBD::Pg 3.0.0
    Path to pg_config?
    No POSTGRES_HOME defined, cannot find automatically
    Warning: No success on command[/srv/data203806/MUXmh-Migration/CPAN/localperl/bin/perl Makefile.PL]
    'YAML' not installed, will not store persistent state
      TURNSTEP/DBD-Pg-3.0.0.tar.gz
      /srv/data203806/MUXmh-Migration/CPAN/localperl/bin/perl Makefile.PL -- NOT OK
    Running make test
      Make had some problems, won't test
    Running …
Run Code Online (Sandbox Code Playgroud)

postgresql perl perl-module dbd-pg

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