Config::Perl::V - 从 perl -V 输出中检索结构化数据
use Config::Perl::V;
my $local_config = Config::Perl::V::myconfig ();
print $local_config->{config}{osname};
此函数将收集下面 "哈希结构" 中描述的数据,并将其作为哈希引用返回。它可以选择接受一个选项,以包含更多来自 %ENV 的条目。请参见下面的 "环境"。
请注意,当使用 -I/path/to/uninstalled/perl/lib
调用时,这在未安装的 perl 上不起作用,但当该路径位于 $PERL5LIB
或 $PERL5OPT
中时,它可以正常工作,因为使用 -I
传递的路径在收集 -V
信息时是未知的。
将一个单独的“perl -V”文本块或行列表转换为一个完整的 myconfig 哈希。所有未知条目都默认为默认值。
返回信息的任意选择。如果未给出 $conf
,则使用 myconfig ()
。
返回 summary ()
返回的信息的 MD5,不包括 config_args
条目。
如果 Digest::MD5
不可用,则返回一个仅包含 0
的字符串。
返回的哈希包含 4 个部分
此信息从 perl -V
发出的第二个块中提取,通常看起来像
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_64_BIT_INT USE_LARGE_FILES
Locally applied patches:
defined-or
MAINT24637
Built under linux
Compiled at Jun 13 2005 10:44:20
@INC:
/usr/lib/perl5/5.8.7/i686-linux-64int
/usr/lib/perl5/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i686-linux-64int
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl
.
或
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY
PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP PERL_TRACK_MEMPOOL
PERL_USE_SAFE_PUTENV USE_ITHREADS
USE_LARGE_FILES USE_PERLIO
USE_REENTRANT_API
Built under linux
Compiled at Jan 28 2009 15:26:59
此信息在其他任何地方都不可用,包括 %Config
,但它是 perl 二进制文件独有的信息。
提取的信息存储在 build
哈希中的 5 个条目中
这很可能与 $Config{osname}
相同,并且是 perl 构建时的已知名称。如果 perl 是交叉编译的,则可能不同。
如果无法提取此字段的默认值,则复制 $Config{osname}
。两者可能在大小写上有所不同(OpenBSD 与 openbsd)。
这是 perl 二进制文件编译的时间字符串。默认值为 0。
这是一个哈希,其中所有已知定义都作为键。该值要么是 0,表示未知或未设置,要么是 1,表示已定义。
由于某些变量在 perl -V
的输出中报告的名称与它们在 %Config
中的实际名称不同,因此我决定将 config
条目尽可能地接近实际情况,并将可能通过打印输出猜测的条目放入一个单独的块中。
这是一个可选的本地应用补丁列表。默认值为空列表。
默认情况下,此哈希仅填充了 %ENV 中以 PERL
开头的环境变量,但可以将 env
选项传递给 myconfig 以获取更多
my $conf = Config::Perl::V::myconfig ({ env => qr/^ORACLE/ });
my $conf = Config::Perl::V::myconfig ([ env => qr/^ORACLE/ ]);
此哈希填充了 perl -V
填充其报告的变量,并且具有 Config::myconfig
从 %Config
返回的相同变量。
这是默认 @INC 的列表。
编写此模块是为了能够根据 CPANTESTERS 框架的需要深度返回当前使用的 perl 的配置。到目前为止,他们将 myconfig 的输出用作单个文本 blob,因此它缺少运行 perl 的重要二进制特性和应用的可选补丁。
请反馈有什么问题
* Implement retrieval functions/methods
* Documentation
* Error checking
* Tests
H.Merijn Brand <[email protected]>
版权所有 (C) 2009-2023 H.Merijn Brand
此库是免费软件;你可以根据与 Perl 自身相同的条款重新分发或修改它。