title: Using argument expansion {*} with more than one statement
body: <p>I am using <code>{*}</code> in tcl for argument expansion and come across this issue.</p>
  
  <pre><code>#!/usr/bin/tclsh
  
  set reset {
          set count 0;
          set age 24;
  }
  
  puts $reset
  
  eval $reset; # This is working fine. Commented out the below line and tried
  
  {*}$reset; # This is throwing error. Commented out the above line and tried.
  
  if { [ info exists count ] &amp;&amp; [ info exists age ] } {
          puts "count &amp; age initialzed to  $count and $age"
  } else {
          puts "count &amp; age not initialzed :("
  }
  </code></pre>
  
  <p>As you see, I have the reset variable defined and I am evaluating with <code>eval</code> as well as with <code>{*}</code>.</p>
  
  <p>While <code>eval</code> is working fine, <code>{*}</code> is throwing error as </p>
  
  <pre><code>wrong # args: should be "set varName ?newValue?"
      while executing
  "{*}$reset"
  </code></pre>
  
  <p>Then I have changed the variable <code>reset</code> as follows,</p>
  
  <pre><code>set reset {
              set count 0;
      }
  </code></pre>
  
  <p>i.e. I have removed the 2nd <code>set</code> statement and the code works fine.</p>
  
  <p>Why <code>{*}</code> is working fine with one statement and not with more than that ? Or What I am missing here ? </p>