2011-07-13 18 views
0
print Dumper \%main::; 

告訴我有這樣的文件:如何轉儲Perl的內部文件?

 '_<perlmain.c' => *{'::_<perlmain.c'}, 

我怎麼能放棄它?

我嘗試了這些方法,但沒有工作:

my $typeglob = *{'::_<perlmain.c'}; 
print "@$typeglob\n"; 

print @{'_<DynaLoader.c'}; 
my @arr = @{'::_<xsutils.c'}; 
print "@arr"; 

回答

1

不能直接提取源,這些文件如果代碼本身沒有被編譯或模塊提供。要閱讀這些文件,您需要從CPAN中獲取Perl源代碼包。

但是,您可以提取miniperl,它用於創建核心Perl的一部分,但缺少核心模塊自動加載數據;有關詳細信息,請閱讀012ld的perldoc或聯機幫助頁。

+1

數組@@ $ main :: {'_ <'。$ filename}}(通過glob賦值本地化爲@dbline)包含$ filename的文本,每個元素對應一行$ filename。此外,可破壞的線路將是dualvars,數字組件是COP節點的內存地址。不可破壞的行是雙變量爲0. – Learning

+0

這是從這裏引用的:http://search.cpan.org/~jesse/perl-5.14.1/lib/perl5db.pl#___top – Learning

+0

Perl無法打印文件的內容那不存在 - 我找不到perl.c,perlmain.c,mro.c,DynaLoader.c,perlio.c,universal.c或Dumper。我的系統在Perl源代碼發行版之外。另外,我不相信Perl 5調試器可以用來調試Perl 5參考實現的C部分。 – Jashank

相關問題