list在Tcl中不包含自己的成员

时间:2012-09-04 09:52:50

标签: tcl

我有一个包含一个成员的列表,该成员是字符串<cmd_stichstudy1>XXDDR0_MA[12]。当我在列表中搜索该字符串时(使用lsearch),我得到该列表不包含它。当我搜索列表成员时,我甚至得到它:

tcl> set nets_names

{<cmd_stichstudy1>XXDDR0_MA[12]}

tcl> lsearch $nets_names [lindex $nets_names 0]

-1

为什么会这样?

2 个答案:

答案 0 :(得分:4)

如果您使用-exact,它将以您希望的方式运作。

% set nets_names {<cmd_stichstudy1>XXDDR0_MA[12]}
<cmd_stichstudy1>XXDDR0_MA[12]
% lsearch -exact $nets_names [lindex $nets_names 0]
0
%

答案 1 :(得分:2)

lsearch默认使用glob-style matching是不幸的。

引用手册:

  

如果省略所有匹配的样式选项,则默认匹配样式为-glob。

因此,除非您真的需要-exact,否则请始终将lsearch传递给-glob