如何在TCL中将多个值压入数组



我试图将值附加到数组中,如下所示,它不附加到值列表

while {[gets $fp line] != -1} {
if { [regexp {Path Group: (w+)} $line all group]} {
set hash($group) {}

} elseif {[regexp {(VIOLATED)s+(-[0-9]*.[0-9]*)} $line all slack]} {
puts "slack $slackn"
lappend hash($group) $slack     
}
}
parray hash

数组哈希的输出只是迭代位的最后一个值,而不是列表

期待

名称{X Y Z}年龄{3 4 5}

set group {}
while {[gets $fp line] != -1} {
if { [regexp {Path Group: (w+)} $line all group]} {
} elseif {[regexp {(VIOLATED)s+(-[0-9]*.[0-9]*)} $line all slack]} {
puts "slack $slackn"
lappend hash($group) $slack     
}
}
parray hash
  • 不需要在每次匹配时设置hash($group),因为这会重置hash($group)的内容。
  • lappend hash($group)中,如果变量不存在,则自动创建。

相关内容

  • 没有找到相关文章