在Tcl中查找命名空间的所有过程

时间:2015-10-29 13:26:39

标签: namespaces tcl introspection proc

让我们说我有一个命名空间。我想找到所有的命名空间过程。 例如, 让我们说我有这个代码:

namespace eval foo { 
   proc me {} { puts "yey!" }
   proc moo {} { puts "ney!" }
}
puts [ getAllNamespaceProcs foo ] ; # getAllNamespaceProcs is what I do not know how to do

这应该产生:

> { me moo }

感谢。

1 个答案:

答案 0 :(得分:4)

可以告诉info procs命令要查看的命名空间:

info procs ::foo::*

这会产生::foo::me ::foo::moo(反之亦然; lsort如果您关心的话)并且您可以过滤(例如,使用lmapnamespace tail)你想得到你提到的结果。