Basically the good practice rule is to not reuse a variable in a statement where you modify it (because you might get tricked by the order of operation, or by some caching mechanism where perl only fetches the value once and uses it several times). An example of such a mistake can be found here (I remember this thread because I've been wrong with an awful lot of confidence, so disregard my answer there :P). And you could also try some variant of your second test:
my %hash2 = (
a => ++$m,
b => ++$m,
c => ++$m
);
#This time you get three times the same value
0 HASH(0x30ef548)
'a' => 3
'b' => 3
'c' => 3
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|