2014-09-12 73 views

回答

5
say for sort keys %Foo::Bar::; 

您可以使用

*Foo::Bar::sym{SCALAR} 
*Foo::Bar::sym{ARRAY} 
*Foo::Bar::sym{HASH} 
etc 

,看是否有符號那些與它相關聯的指定類型的變量。

+0

從一個類似'env MODULE = Foo :: Bar bash -c'perl -e'的命令行使用v5.10;使用$ MODULE;對於排序鍵%$ {MODULE} ::「'' – badp 2015-11-09 09:45:02

1

對於包h

package h; 
our $r; 

use Data::Dumper; 
print Dumper \%h::; 
3

您可以通過在包的符號表中四處翻找做這一切你自己。但是Devel::Symdump使這一切變得更容易。

0

Devel::Symdump軟件包就是這樣做的。爲了演示,這裏就是其本身轉儲:

$ perl -M'Devel::Symdump' -e 'print(Devel::Symdump->new("Devel::Symdump")->as_string)' 
arrays 

functions 
    Devel::Symdump::AUTOLOAD 
    Devel::Symdump::DESTROY 
    Devel::Symdump::_doit 
    Devel::Symdump::_inh_tree 
    Devel::Symdump::_isa_tree 
    Devel::Symdump::_partdump 
    Devel::Symdump::_symdump 
    Devel::Symdump::as_HTML 
    Devel::Symdump::as_string 
    Devel::Symdump::diff 
    Devel::Symdump::inh_tree 
    Devel::Symdump::isa_tree 
    Devel::Symdump::new 
    Devel::Symdump::rnew 
hashes 

ios 
    Devel::Symdump::ENTRY 
packages 

scalars 
    Devel::Symdump::AUTOLOAD 
    Devel::Symdump::BEGIN 
    Devel::Symdump::DESTROY 
    Devel::Symdump::Defaults 
    Devel::Symdump::ENTRY 
    Devel::Symdump::MAX_RECURSION 
    Devel::Symdump::VERSION 
    Devel::Symdump::_doit 
    Devel::Symdump::_inh_tree 
    Devel::Symdump::_isa_tree 
    Devel::Symdump::_partdump 
    Devel::Symdump::_symdump 
    Devel::Symdump::as_HTML 
    Devel::Symdump::as_string 
    Devel::Symdump::diff 
    Devel::Symdump::import 
    Devel::Symdump::inh_tree 
    Devel::Symdump::isa_tree 
    Devel::Symdump::new 
    Devel::Symdump::rnew 
unknowns 

您還可以在HTML輸出或獲取特定類型的符號(標量,功能等)的列表。

但是,請注意,AUTOLOADED符號不會被轉儲,除非它們已被加載。如果你想看到所有可能的符號可用,你會想看看文檔和/或源代碼。