title: TCL : How substitution occures in if statement
body: <p>Consider this code where <code>a</code> is a global variable:</p>
  
  <pre><code>% set a 1
  1
  % # FirstCase 
  % if "$a==1" "
         puts &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
  "
  &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
  % # Second case
  % if {$a==1} {
       puts &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
  }
  &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
  </code></pre>
  
  <p>In my first case, I made an <code>if</code> statement with <code>""</code>. Hence substitution of <code>a</code> will be done here. Acceptable.</p>
  
  <p>In my second case, I made an <code>if</code> statement with <code>{}</code>. How does substitution of <code>a</code> happen here? <code>{}</code> means do not substitute and yet there is the variable being used. In the <code>if</code> related code, does it look for the global stack for variable <code>a</code>?</p>