标签: perl-module

手动安装Perl模块

我已下载模块Digest::SHA1并将其解压缩到目录(../Digest-SHA1-2.13/),然后将所有SHA1.*文件复制到(../Digest-SHA1-2.13/Digest)

在perl脚本中,我做了:使用Digest :: SHA1; 像这样启动脚本:

perl -I ../Digest-SHA1-2.13/Digest perlscriptname.pl
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Can't locate loadable object for module Digest::SHA1 in @INC
Run Code Online (Sandbox Code Playgroud)

我假设它与共享库(*.so)有关,我不知道如何从这里继续.

我可以使用CPAN(-MCPAN)模块直接安装它,因为我没有权限在该服务器上执行此操作,并且只能在本地安装(应用程序运行的地方).我的最终目标是使用Algorithm::CouponCode哪个依赖于Digest::SHA1

奇怪的部分是,我已经Digest::SHA1安装(perl -MDigest::SHA1 -e 'print $Digest::SHA1::VERSION'显示版本2.11),仍然Algorithm::CouponCode(安装方式与我做的相同Digest::SHA1)抱怨它可以找到它@INC

谢谢!

perl perl-module

14
推荐指数
2
解决办法
4万
查看次数

如何在Perl中检索整数的序数后缀(如st,nd,rd,th)

我有数字,需要添加后缀:'st','nd','rd','th'.例如:如果数字为42,则后缀为'nd',521为'st',113为'th',依此类推.我需要在perl中执行此操作.任何指针.

regex perl perl-module perl-data-structures

14
推荐指数
3
解决办法
2051
查看次数

如何在OSX上安装JSON.pm perl模块

我试图使用JS gettext库(http://jsgettext.berlios.de/)中的po2json解析器/转换器,但是当我尝试转换时,我收到此错误:

Can't locate JSON.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at ./po2json line 23.
BEGIN failed--compilation aborted at ./po2json line 23.
Run Code Online (Sandbox Code Playgroud)

据我所知,我错过了一个perl模块,即JSON.pm,我认为就是这个:http://cpansearch.perl.org/src/MAKAMAKA/JSON-2.53/lib/JSON.pm

现在,我如何在OSX上安装它?我正在使用Mountain Lion.

我试过cpan install JSON,但它不起作用,我收到以下错误:

Writing Makefile for JSON
  MAKAMAKA/JSON-2.53.tar.gz
  make -- NOT OK
'YAML' not installed, will not store persistent state
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Run Code Online (Sandbox Code Playgroud)

macos perl perl-module

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

如何在Perl 6中包含文件

我有两个Perl 6文件:

hello.p6:

sub hello
{
    say 'hello';
}
Run Code Online (Sandbox Code Playgroud)

和main.p6:

require 'hello.p6';

hello();
Run Code Online (Sandbox Code Playgroud)

但是不要工作.如何在主脚本中包含第一个文件?

perl-module perl6 raku

14
推荐指数
2
解决办法
1055
查看次数

Perl程序如何知道在哪里找到包含它使用的Perl模块的文件?

如果我的Perl程序使用Perl模块,它将如何确定在哪里找到包含模块代码的文件?

例如,如果程序包含:

use MyModule1;              # Example 1
use This::Here::MyModule2;  # Example 2
Run Code Online (Sandbox Code Playgroud)

它会在哪里看?

perl perl-module path include

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

如何为Perl变量设置默认值?

我是Perl的新手.我需要使用外部模块HTTP :: BrowserDetect.我正在测试一些代码,并试图从os_string方法获取操作系统的名称.所以,我只是初始化了对象并创建了一个变量来存储返回的值.

my $ua = HTTP::BrowserDetect->new($user_agent);
my $os_name = $ua->os_string();

print "$user_agent $os_name\n";
Run Code Online (Sandbox Code Playgroud)

有一些用户代理不是浏览器用户代理,因此他们不会从os_string获取任何值.我收到了一个错误Use of uninitialized value $os_name in concatenation (.) or string

当$ os_name未初始化时如何处理这种情况,因为方法os_string返回undef(这是我认为通过阅读模块源代码发生的事情).我想应该有一种方法来提供默认字符串,例如在这些情况下没有操作系统.

perl initialization perl-module object

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

你如何在lib Path中使用变量?

我想在lib路径中使用$ var变量.

my $var = "/home/usr/bibfile;"

use lib "$var/lib/";

但是,当我这样做时,它会抛出一个错误.

我想用use lib "$var/lib/";而不是use lib "/home/usr/bibfile/lib/";.

如何分配变量,以便可以在lib模块的设置中使用?

perl perl-module

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

我在哪里可以找到cpanfile格式定义?

我们考虑使用MinillaDist :: Milla进行perl开发.声明依赖关系是通过cpanfile完成的.我期望找到一个确切的定义,以及如何宣布.但

  • perldoc cpanfile:仅显示主要用法."另请参见"部分没有帮助.

  • perldoc Module :: CPANfile:与cpanfile相同.

  • perldoc cpanfile-faq:仅解释确切的语法或链接

熟悉的DSL语法

这是一种新的文件类型,但格式和语法并不是全新的.它可以声明的元数据恰好是CPAN Meta Spec中"Prereqs"的子集.

语法从Module :: Install中借鉴了很多.Module :: Install是一种轻松声明模块元数据(如名称,作者和依赖项)的好方法.cpanfile格式只是将依赖项提取到一个单独的文件中,这意味着大多数开发人员都熟悉语法.

有谁知道在哪里可以找到cpanfile语法/格式的确切描述?

perl perl-module

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

Perl XS和Inline :: C

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

perl perl-module xs

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

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

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

perl cpan perl-module perl-core

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