Tcl中的info exists命令返回错误

Tcl中的info exists命令返回错误,tcl,Tcl,我在itcl中编写了以下代码 if {[info exists ::xtg::triggers::match$arg]} { eval delete object ::xtg::triggers::match$arg } 这段代码应该检查是否存在一个名为::xtg::triggers::match$arg的对象,如果存在,则将其删除。 问题是我的shell中出现以下错误: 命名空间中已存在命令“match0”::xtg::Triggers 而不是“信息存在”命令手册中所述的1或0 如

我在itcl中编写了以下代码

if {[info exists ::xtg::triggers::match$arg]} {
    eval delete object ::xtg::triggers::match$arg 
}
这段代码应该检查是否存在一个名为::xtg::triggers::match$arg的对象,如果存在,则将其删除。 问题是我的shell中出现以下错误: 命名空间中已存在命令“match0”::xtg::Triggers 而不是“信息存在”命令手册中所述的1或0

如何解决此问题?

检查现有变量,而不是命令(包括对象命令)

尝试:

您可能还想考虑Itcl的<代码>信息对象< /代码>:

if {::xtg::triggers::match$arg in [info objects]} {
     # ...
}

(假设您调用
[info objects]
以获得正确的命名空间范围)

if {::xtg::triggers::match$arg in [info objects]} {
     # ...
}
if {[info objects ::xtg::triggers::match$arg] ne ""} {
     # ...
}