【发布时间】:2012-09-21 00:28:28
【问题描述】:
如何在 TCL 中找到过程(函数)的位置。在位置下,我指的是声明它的源文件。
我正在尝试阅读外国源代码,但找不到单个过程的声明,例如:
set MSISDNElement [regexp -all -inline {ISDN +[0-9]+} $Command]
if { $MSISDNElement != "" } {
foreach elm $MSISDNElement {
set MSISDNValue [list ISDN [getInternationalFormat [lindex $elm 1]]]
}
}
set EptData [list [lindex $Command 1]]
InitEptData 3
foreach Element $EptData {
SetEptData [lindex $Element 0] [lindex $Element 1]
}
对于函数 InitEptData 和 SetEptData 我找不到任何声明。可以更深入了解 TCL 的人来解释如何解决我面临的问题吗?提前致谢!
【问题讨论】:
-
一般来说,您无法找到过程的位置(因为 Tcl 为您提供了
eval在运行时动态、动态地定义它的能力)。在实践中,您可以使用文本查找(例如 Linux 上的grep)来查找某个名称的定义出现。 -
另外,有些程序实际上是由一些用C编译的可执行代码定义的。
-
@Basile Starynkevitch:是的,就是这种情况!谢谢!