Reputation: 3103
See the code below:
> foreach a {k l { jo k } {jo i } k } { puts $a}
k
l
jo k
jo i
k
The question is, what happens if I get a string which has a string representation of the list:
> foreach a "{k l { jo k } {jo i } k }" { puts $a}
k l { jo k } {jo i } k
How can I convert the string "{k l { jo k } {jo i } k }"
to a list which is identical to: {k l { jo k } {jo i } k }
Using subst and eval, but that did not work.
Thanks.
Upvotes: 0
Views: 57
Reputation: 246807
The "splat" operator works too:
% foreach a "{k l { jo k } {jo i } k }" { puts $a}
k l { jo k } {jo i } k
% foreach a {*}"{k l { jo k } {jo i } k }" { puts $a}
k
l
jo k
jo i
k
Upvotes: 3
Reputation: 137567
That string looks like it is holding a list, so let's try lindex
…
% foreach a [lindex "{k l { jo k } {jo i } k }" 0] { puts $a}
k
l
jo k
jo i
k
Upvotes: 2