proc parsedict {args} {
if {[catch {dict size $args} result]} {
puts "err $result"
} else {
puts "size=$result"
set n 0
foreach key [dict keys $args] {
puts key$n=$key
incr n
}
set n 0
foreach value [dict values $args] {
puts value$n=$value
incr n
}
}
}
parsedict -name "name with spaces" -value 3 -color {-type enum -values {red blue green}}
cHJvYyBwYXJzZWRpY3Qge2FyZ3N9IHsKCmlmIHtbY2F0Y2gge2RpY3Qgc2l6ZSAkYXJnc30gcmVzdWx0XX0gewogICAgcHV0cyAiZXJyICRyZXN1bHQiCn0gZWxzZSB7CiAgICBwdXRzICJzaXplPSRyZXN1bHQiCiAgICBzZXQgbiAwCiAgICBmb3JlYWNoIGtleSBbZGljdCBrZXlzICRhcmdzXSB7CiAgICAgICAgcHV0cyBrZXkkbj0ka2V5CiAgICAgICAgaW5jciBuCiAgICB9CiAgICBzZXQgbiAwCiAgICBmb3JlYWNoIHZhbHVlIFtkaWN0IHZhbHVlcyAkYXJnc10gewogICAgICAgIHB1dHMgdmFsdWUkbj0kdmFsdWUKICAgICAgICBpbmNyIG4KICAgIH0KfQp9CiAKcGFyc2VkaWN0IC1uYW1lICJuYW1lIHdpdGggc3BhY2VzIiAtdmFsdWUgMyAtY29sb3Igey10eXBlIGVudW0gLXZhbHVlcyB7cmVkIGJsdWUgZ3JlZW59fQo=