2014-09-12 124 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符号不会被转储,除非它们已被加载。如果你想看到所有可能的符号可用,你会想看看文档和/或源代码。