问题标签 [perl-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2337 浏览

perl - 构建模块时如何覆盖 perl 的编译标志?

在构建 Perl 模块时,ExtUtils::MakeMaker 使用 Config.pm 中定义的标志(参见 perldoc Config)作为 ccflags 和 ldflags 等值。

如何覆盖这些值(不编辑 Makefile.PL)?

似乎不起作用。

上下文:我正在尝试在 OS X 10.6 上编译 Term::Readline::Gnu。默认的 OS X perl 是通用二进制文件,因此具有 -arch i386 -arch ppc 等 ccflags。
另一方面,我的 Gnu Readline (6.0) 版本仅针对 -arch i386 的源代码编译。因此,它不包含试图使用 -arch ppc 链接到它的模块的预期符号。

0 投票
1 回答
192 浏览

perl - Win32 下的 gVim perl 标签 - 我应该使用 Perl::Tags 吗?

我是 gVim、Perl 和测试脚本的新手,所以我希望这不是一个愚蠢的问题?

我已在 Linux 和 OS X 下成功安装 Perl::Tags 0.26,但在 WIN32 下出现安装测试错误——另见perl.cpan.testers

我的问题是:

(i) VIM 需要 Perl::Tags 还是我可以依靠 exuberant ctags 为我生成合适的标签?

(ii) 如果我需要 Perl::Tags 那么如何解决以下问题 - 许多安装测试似乎失败了,因为测试需要 /Test.pm 但在 WIN32 下获得 \Test.pm。这是来自 test 02_subclass.t 的示例:

当前测试在 WIN32 下确实失败

此测试成功 - 请注意目录斜杠

这会阻止标签文件工作吗?

0 投票
3 回答
301 浏览

perl - 针对 Perl 测试脚本的操作系统特定测试

有没有更优雅的方法来编写依赖于 O/S 的测试脚本部分?

请参考注释行下方的代码。

背景:模块Perl::Tags为 VIM 创建一个标签文件。在 Win32 上,目录分隔符是“\”,但在其他操作系统上是“/”。Vim 的 Perl-support 模块似乎读标签文件很愉快,所以似乎不需要修改模块。

0 投票
5 回答
3512 浏览

perl - 如何使用 DBIx::Class 进行子选择?

我从 DBIx::Class 开始,我有一个想要在 DBIx::Class 中的子选择,但我很困惑,无法构建代码。

我的 MySQL 选择是这个:

我读到 DBIx::Class 不支持子选择;真的吗?如果是这样,在这种情况下你会怎么做?

0 投票
4 回答
16179 浏览

perl - 在 Perl 中,如何将多个包放在一个 .pm 文件中?

我很确定我在某个地方读到过它是可能的,但是您需要注意一些问题。不幸的是,我找不到描述您需要做什么的教程或页面。我浏览了Perl 教程,但没有找到我记得读过的那个。有人可以给我指出一个描述如何将多个包放入单个 .pm 文件的页面或文档吗?

0 投票
6 回答
2916 浏览

perl - 如何在 Windows 上的 ActivePerl 中安装模块及其依赖项?

我想使用 gmail 的 smtp 服务器和 perl 发送电子邮件。我正在尝试安装Email::Send::Gmail,但我不清楚安装它的步骤是什么。似乎它取决于我没有安装的其他模块。

0 投票
5 回答
1919 浏览

perl - Perl:如何在没有警告的情况下调用 END {} 内的对象方法?

输出:

变量“$self”不会在 ./test 第 10 行保持共享。
再见。

显然它有效,我可以no warnings在 END 块内抑制警告。但我想知道是否有更好的方法来做到这一点。

我尝试使用这样的匿名子:

然后像这样:

但我总是得到同样的警告。

0 投票
7 回答
19733 浏览

perl - "1;" 是什么意思 在 Perl 中是什么意思?

我遇到了一些 Perl 模块,例如看起来类似于以下代码:

包围 the和 Sub1;的花括号的意义是什么?$somevar

0 投票
3 回答
1747 浏览

perl - How can I tell what modules were originally provided with the specific Perl installation on a machine?

How can I tell what modules were originally provided with the specific Perl installation on a machine?

(This is not a duplicate of: How can I tell if a Perl module is core or part of the standard install? ( "How can I tell if a Perl module is core or part of the standard install?" ) - it is in fact a spin-off question from it )

I am looking for what came with the installation originally, what modules were provided as part of that installation, what was built-in. NOT what has been installed since then.

I would like this to work with any Perl version.

I want to be able to do this:

  • using a script within a Perl program itself/command on the machine that has the installation. So for this I would be relying upon the installation to have a record in some form as to what it has originally.
  • on the downloaded package before I do the install. Ask it what modules it has.

The reasons why I want to do this is:

  • I want to know what modules I can expect as default when writing software to run on a machine with the Perl installation, and what modules I would need to add which aren't default
  • if I keep the original installer image/package OR know how to get the exact thing again online, then I have a repeatable consistent Perl installation for several machines with the knowledge of what modules will be present and what modules will not.
  • my Perl software will have a well defined deployment procedure as it is easy to define exactly what is required by the software
  • I may not be able to just update/upgrade the Perl version easily due to policies in place in my organisation (that's just the way it is, I don't want a side discussion on this). Such policy can be justified as there is always a risk upgrading to new software that can outweigh the benefits. Developers therefore need to know what they can expect to be available.

The reason why I ask this question is because, for any Perl version, there appears not to be an automated way of finding out the overall standard installation defining what modules you can expect to be present in your default installation on your machine - see question: How can I tell if a Perl module is core or part of the standard install? ( "How can I tell if a Perl module is core or part of the standard install?" )

The Perl versions cannot be relied upon to tell you what modules are present or not. Sure, there might be documentation online that tells you. But I need an automated way of doing this on the release I download/install. Even the same Perl version on different Linux/Unix distributions can be different.

0 投票
4 回答
715 浏览

perl - 将怪物 Perl 模块重构为子模块的好方法是什么?

我有一个项目的 Perl 模块。我可能有十几个程序挂在上面,其中很多都是垃圾。我之前没有在 DBI 上花费太多私人时间,所以这部分是可以修复的,但重要的是它很大。字面意思是 2KLOC。

将这个函数(我们称之为 Dumb.pm)分解为单独的模块(Dumb::FormTools、Dumb::Database 等)很容易,但正如我所说,有很多程序已经“使用 Dumb”; '

我想通过 Dumb 导出 Dumb::Database 的可导出函数,而不必一遍又一遍地改变它:

不是我在上面。只是这似乎是处理问题的愚蠢和不雅的方式。我曾经用过一次“不知道没有更好”的借口,而且一次真的比你得到的要多。帮助?