note
haj
<p>The <tt>and</tt> is the conditional here. The equal sign <tt>=</tt> has a higher precendence than <tt>and</tt> and Perl <em>guesses</em> (it's a warning, not a syntax error) that you meant to have a comparison on its left side. The expression might also not do what you want since the result of <tt>and</tt> is <em>not</em> its second operand, but I <em>guess</em> you want <tt>"\${$1}"</tt> as replacement string.</p>
<p>The cleanest (IMO) way to get rid of that warning is to use <tt>do</tt>, as you did, but to replace the <tt>and</tt> in the <tt>do</tt> block with a semicolon:</p>
<code>
do { $used_options{ $1 } = 1; "\${$1}" }
</code>
11143807
11143807