title: Valid variable name in Template Toolkit
body: <p>I'm using perl and Template::Toolkit to generate some texts. In the perl program, I defined a hash ref such as </p>
  
  <pre><code>my $user = { "user-name" =&gt; "John" };
  </code></pre>
  
  <p>and passed it to <code>Template::Toolkit</code> in order to generate <code>John</code> with the template file. In the template file I wrote </p>
  
  <pre><code>[% user-name %]
  </code></pre>
  
  <p>But unfortunately, <code>user-name</code> seemed to be recognized as a subtraction expression (<code>user</code> minus <code>name</code>) by <code>Template::Toolkit</code>.</p>
  
  <p>To confirm my suspicions, I looked into <a href="http://www.template-toolkit.org/docs/manual/Variables.html" rel="nofollow">the manual</a> of <code>Template::Toolkit</code> to find the valid tokens to use in the variable name but found nothing.</p>
  
  <p>So my questions are:</p>
  
  <ol>
  <li><p>Could you give the list of valid tokens for variable names of
  <code>Template::Toolkit</code>?</p></li>
  <li><p>Could I use some "escaping method" in the template file so that the
  variable name in perl program could remain <code>user-name</code>?</p></li>
  </ol>