标签: cpan

如何找到已安装的Perl模块的版本?

如何找到已安装的Perl模块的版本?

这是在底部的答案,但我认为它足够重要,住在这里.有了这些建议,我在my中创建了一个函数.bashrc

function perlmodver {
    perl -M$1 -e 'print "Version " . $ARGV[0]->VERSION . " of " . $ARGV[0] . \
    " is installed.\n"' $1
}
Run Code Online (Sandbox Code Playgroud)

perl cpan module version

56
推荐指数
7
解决办法
6万
查看次数

如何自动执行CPAN配置?

第一次从命令行运行cpan时,系统会提示您输入各种问题的答案.如何从一开始就以非交互方式自动化cpan并安装模块?

perl cpan

40
推荐指数
5
解决办法
2万
查看次数

如何在使用perlbrew时安装CPAN模块?

我已经开始使用perlbrew并安装了perl-5.12.2.

我明白我需要重新安装我的CPAN模块,所以我切换到我的新Perl版本(perlbrew switch perl-5.12.2hash -r),验证交换机是否成功(perl -v)然后尝试安装一些模块(File::Copy::Recursive使用cpan.但是,cpan说`File :: Copy :: Recursive是最新的(0.38).

当我使用这个模块启动一个Perl脚本时,它会大喊Can't locate File/Copy/Recursive.pm in @INC ...(显示许多perl-5.12.2位置).当我切换回我的'普通'Perl(perlbrew off)时,脚本运行正常.

有什么建议?也许CPAN效果不好perlbrew

perl cpan module version perlbrew

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

如何在没有root权限的情况下安装Perl模块?

我在Linux机器上,我没有root权限.我想通过CPAN将一些软件包安装到我的主目录中,这样当我运行Perl时,它就能看到它.

我跑了cpan,这要求一些配置选项.它要求提供一些目录,它建议~/perl"对于非root用户".尽管如此,当我尝试安装软件包时,它在make install步骤中失败了,因为我没有写入权限/usr/lib/perl5/whatever.

如何配置CPAN以便我可以将软件包安装到我的主目录中?

perl install cpan

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

在使用包管理器时,如何管理Perl模块?

最近关于SO的一个问题让我思考.

在我尝试的大多数Linux发行版中,一些Perl模块可以通过包管理器获得.其他人当然不是.很长一段时间,每当我需要安装一些CPAN模块以确定软件包是否可用时,我会使用我的软件包管理器,并在需要时安装它.

显而易见的优点是,只要有新版本的软件包,就可以更新模块.

但是,如果模块没有预先打包的形式,并且该模块存在依赖关系,则会遇到麻烦.每次cpan shell询问是否应该遵循依赖关系时,启动你的包管理器都会非常累人.

通常,另一个缺点是预封装模块的版本.如果您正在运行Debian或Ubuntu,您很快就会发现,您将无法像最近的CPAN模块作者那样生活在最前沿.

Linux上的其他Perl人如何处理这个问题?你只是忽略你的包经理提供的东西吗?是否有任何工具可以使apt(例如)和cpan更好的队友?或者你只是不通过cpan shell安装任何东西?

linux perl cpan module packages

31
推荐指数
5
解决办法
8835
查看次数

如何在没有安装权限的情况下使用新的Perl模块?

这是我的情况:我对Perl几乎一无所知,但它是移植机器上唯一可用的语言.我只有权在我的本地工作区写入,而不是Perl安装位置.我需要使用CPAN 的Parallel :: ForkManager Perl模块

如何在不进行集中安装的情况下使用此Parallel :: ForkManager?是否有我可以设置的环境变量,因此它位于?

谢谢

JD

permissions installation perl cpan module

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

如何为不与内置或CPAN软件包名称冲突的自定义Perl模块选择软件包名称?

我已经阅读了模块上perldoc,但是我没有看到有关命名包的建议,因此它不会与内置或CPAN模块/包名冲突.

过去,为了开发本地Session.pm模块,我使用我公司的名称创建了一个本地目录,例如:

package Company::Session;
Run Code Online (Sandbox Code Playgroud)

...和Session.pm可以在目录Company /中找到.

但我不是这个命名惯例的粉丝.我宁愿将包层次结构命名为更接近代码的功能.但这就是CPAN一般的做法......

我觉得我错过了一些基本的东西.我也看过达米安的Perl最佳实践,但我可能没有找到正确的地方......

有关避免包命名空间冲突的任何建议吗?

更新W /相关的问题:如果一个包名称冲突,如何Perl的选择使用哪一个?感谢大家.

perl cpan module naming-conventions

28
推荐指数
2
解决办法
4003
查看次数

如何找到Perl脚本的模块依赖项?

我希望另一个开发人员运行我编写的Perl脚本.该脚本使用许多必须在脚本运行之前安装的CPAN模块.是否可以使脚本(或perl二进制文件)转储所有缺少的模块的列表?当我尝试运行脚本时,Perl会打印出缺少的模块的名称,但这很详细,并且不会立即列出所有缺少的模块.我想做点什么:

$ cpan -i `said-script --list-deps`
Run Code Online (Sandbox Code Playgroud)

甚至:

$ list-deps said-script > required-modules # on my machine
$ cpan -i `cat required-modules` # on his machine
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?这不是一个显示阻止,但我想让其他开发人员的生活更轻松.(所需的模块分散在几个文件中,因此我不容易手工制作列表而不会遗漏任何内容.我知道PAR,但对于我想要的东西来说似乎有点太复杂了.)


更新:谢谢,曼尼,这样做.我不知道%INC,我只知道@INC.我解决了这样的事情:

print join("\n", map { s|/|::|g; s|\.pm$||; $_ } keys %INC);
Run Code Online (Sandbox Code Playgroud)

打印出来:

Moose::Meta::TypeConstraint::Registry
Moose::Meta::Role::Application::ToClass
Class::C3
List::Util
Imager::Color
…
Run Code Online (Sandbox Code Playgroud)

看起来这样可行.

perl dependencies cpan module

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

有什么好的Perl调试方法?

有没有其他方法可以调试Perl Data::Dumperperl -d

debugging perl programming-languages cpan

26
推荐指数
6
解决办法
8280
查看次数

如何开始为CPAN编写模块?

现在,我有自己的自己开发的测试工具/目录结构/支持doc strucure /我的库分发工具.然而,阅读博客文章写你的代码就像CPAN一样,这听起来是个好主意.然后它发生在我身上,我真的不知道该怎么做.

有什么好的资源可以开始在类似CPAN的结构中制作自己的Perl包?

perl cpan distribution

24
推荐指数
4
解决办法
2150
查看次数