Is it possible to set fixed hash behavior: getting the same order of keys (or values, or each)?
IMHO, 99.9% of the time, this is an XY Problem. Maybe something like 80% of the time, the correct answers are "sort the keys of the hash on output", "use an array", or less often, "use a module like Tie::IxHash". See also the FAQ How do I sort a hash (optionally by value instead of key)? and the following question.
Even if you set PERL_HASH_SEED and the related variables, Perl makes no guarantees that this will stay stable across Perl versions. Hashes are always unordered.
How scripts, output of which depend on hashes, are tested?
By sorting the keys of the hash on output (see also Data::Dumper's Sortkeys, Data::Dump, most JSON modules have the canonical option, etc.), or if testing the contents of the hash directly, comparison functions like is_deeply from Test::More or Compare from Data::Compare don't care about hash order (since there is none).
-
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.
|