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 的預設清單。
撰寫此模組的目的是為了能夠傳回目前使用的 Perl 的組態,深度符合 CPANTESTERS 架構的需要。到目前為止,他們將 myconfig 的輸出用作單一文字區塊,因此遺漏了執行中 Perl 和套用選用修補程式的基本二進制特徵。
請回饋錯誤事項
* Implement retrieval functions/methods
* Documentation
* Error checking
* Tests
H.Merijn Brand <h.m.brand@xs4all.nl>
著作權所有 (C) 2009-2023 H.Merijn Brand
此函式庫為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。