perl - 如何判断 Perl 模块是核心还是标准安装的一部分?

标签 perl module standard-library

如何检查 Perl 模块是否是核心的一部分 - 即它是标准安装的一部分?

我正在寻找:

  • 命令行命令:
  • 在代码中检查的 Perl 子例程/函数

也许问题应该是:我如何知道机器上特定 Perl 安装最初提供了哪些模块? (实际上,现在询问为 How can I tell what modules were originally provided with the specific Perl installation on a machine? 。)

考虑到现在似乎没有一个整体的 Perl 标准安装,至少这个新问题的答案会告诉我第一次安装时我最初安装的是什么。

有了这些知识,如果我保留原始安装程序镜像/包或者知道如何再次在线获取确切的东西,那么我就可以为多台机器进行可重复的 Perl 安装,并了解将出现哪些模块以及将出现哪些模块不是。

为了进一步澄清:我正在研究最初安装时附带的内容、安装过程中提供的模块以及内置的模块。 不是从那时起安装了什么。

我希望能够在已安装的计算机上执行此操作。因此,为此,我将依靠安装以某种形式记录其最初的内容。

我问了衍生问题: How can I tell what modules were originally provided with the specific Perl installation on a machine? (我如何知道机器上特定 Perl 安装最初提供了哪些模块?)

最佳答案

corelist来自 Module::CoreList 的命令module 将确定模块是否为 Core。

> corelist Carp

Carp was first release with perl 5

> corelist XML::Twig

XML::Twig was not in CORE (or so I think)

这是在脚本中使用它的一种方法。 Module::CoreList POD 太简洁了——您必须浏览源代码才能找到要调用的方法:

use strict;
use warnings;
use Module::CoreList;

my $mod = 'Carp';
#my $mod = 'XML::Twig';
my @ms = Module::CoreList->find_modules(qr/^$mod$/);
if (@ms) {
    print "$mod in core\n";
}
else {
    print "$mod not in core\n";
}

__END__

Carp in core

关于perl - 如何判断 Perl 模块是核心还是标准安装的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049735/

相关文章:

perl - 如何同时为两个 perl 安装安装模块?

javascript - 从包访问 meteor 应用程序的导入目录?

haskell - 为什么 Haskell 9 是 8's standard classes made inferior to Haskell 1.3' ?

c - 为什么 C 标准库没有内置到语言中?

perl - 熟悉 Perl 代码库的最佳方法?

perl - 在Perl中解析一个由空字节分隔的字符串

perl - 寻找 Log4perl 替代方案,用于从多个进程进行并发日志记录

javascript - 为什么这个 javascript 对象在使用和不使用模块模式时表现不同?

perl - 使用 Try::Tiny 和 Module::Runtime 避免在 Perl 中使用 try-catch 时出现警告

c - c标准库中的stdin在哪里定义?