<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Полагались на то, что было описано в документации: The keys of a hash are returned in an apparently random order.  The actual random order is subject to change in future versions of Perl, but it is guaranteed to be the same order as either the "values" or "each" function produces (given that the hash has not been modified) - то что keys / values в одном порядке отдают реально используется очень часто. </div><div><br></div><div>Хотя погуглил-таки ради интереса и вроде как это не изменилось - <a href="http://stackoverflow.com/questions/14464147/hash-merging-method-affected-in-perl-5-18-by-hash-order-randomization">http://stackoverflow.com/questions/14464147/hash-merging-method-affected-in-perl-5-18-by-hash-order-randomization</a> :</div><div><br></div><div><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">After reading through </span><a href="http://www.perlmonks.org/?node_id=1006246" style="margin: 0px; padding: 0px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(255, 255, 255); color: rgb(74, 107, 130); text-decoration: none; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">Re^2: Hash order randomization is coming, are you ready?</a><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">, the answer is </span><strong style="margin: 0px; padding: 0px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(255, 255, 255); font-weight: bold; color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">yes</strong><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">. As before, </span><code style="margin: 0px; padding: 1px 5px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">keys</code><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;">, </span><code style="margin: 0px; padding: 1px 5px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">values</code><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> and </span><code style="margin: 0px; padding: 1px 5px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">each</code><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> will produce the same sequence iterating through the hash inside the</span><em style="margin: 0px; padding: 0px; border: 0px; font-size: 13.600000381469727px; vertical-align: baseline; background-color: rgb(255, 255, 255); font-style: italic; color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">same process</em><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> if the hash isn't changed in between.</span></div><div><span style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.600000381469727px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17.600000381469727px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); display: inline !important; float: none;"><br></span></div><div>Слава яйцам!</div><div><br></div><div>Евгений</div><br><div><div>On May 20, 2013, at 7:12 PM, Анатолий Шарифулин wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Раньше рандом был только при инициализации и многие на него полагались как на постоянный порядок.<div>Теперь рандом при каждом обращение к хешу. Плюс как раз в том, чтобы не полагаться на то, что должно быть рандомно.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/20 Eugene Toropov <span dir="ltr"><<a href="mailto:eugene.toropov@gmail.com" target="_blank">eugene.toropov@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>Плюса не вижу, если честно. В чем он?</div><div><div class="h5"><br><div><div>On May 20, 2013, at 7:08 PM, Анатолий Шарифулин wrote:</div><br><blockquote type="cite"><div dir="ltr">Плюс в рандоме, полагаться на порядок теперь точно не стоит)</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/18 Alex Lushpai <span dir="ltr"><<a href="mailto:lushpai@gmail.com" target="_blank">lushpai@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;font-size:small">» - Ключи хэшей теперь возвращаются в случайном порядке<br>

<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;font-size:small">

Хм, а в чем плюс?<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/18 Анатолий Шарифулин <span dir="ltr"><<a href="mailto:sharifulin@gmail.com" target="_blank">sharifulin@gmail.com</a>></span><br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Yaroslav Korshak</b> <span dir="ltr"><<a href="mailto:ykorshak@gmail.com" target="_blank">ykorshak@gmail.com</a>></span><br>




Date: 2013/5/18<br>Subject: [Kiev-pm] Вышел Perl 5.18.0<br>To: "Kiev.pm group" <<a href="mailto:kiev-pm@pm.org" target="_blank">kiev-pm@pm.org</a>><br><br><br>Поздравляю всех нас!<br>
<br>
После года разработки в ветке 5.17.х вышел следующий стабильный релиз интерпретатора: Perl 5.18.0<br>
<br>
Официальный анонс:<br>
<a href="http://www.nntp.perl.org/group/perl.perl5.porters/2013/05/msg201940.html" target="_blank">http://www.nntp.perl.org/<u></u>group/perl.perl5.porters/2013/<u></u>05/msg201940.html</a><br>
<br>
В ближайшее время вы сможете установить при помощи perlbrew.<br>
<br>
Краткая сводка изменений:<br>
<br>
- Предупреждения (warnigns) об использовании экспериментальный функционала в исполняемом коде.<br>
  Предупреждения можно отключить при помощи no warnings "experimental::$feature"<br>
<br>
- Ключи хэшей теперь возвращаются в случайном порядке.<br>
  Сортировка ключей в рамках одного хэша остается стабильной, но два идентичных хэша вернут ключи в разном порядке.<br>
<br>
- Поддержка Unicode 6.2<br>
<br>
- next, last, redo и dump могут использовать в качестве меток произвольные выражения, которые будут вычисляться во время работы программы.<br>
  В предыдущих версиях не-константная метка интерпретировалась как пустая строка:<br>
  next $label_name;<br>
<br>
- Следующие встроенные функции теперь находятся в пространстве CORE::<br>
  "defined", "delete", "exists", "glob", "pos", "protoytpe", "scalar", "split", "study", и "undef"<br>
<br>
- Поддержка отрицательных имен сигналов в kill()<br>
  kill -INT, ... будет работать так же как kill -2, ...<br>
<br>
- Весь функционал семейства smartmatch помечен как “экспериментальный”.<br>
  Операторы ~~, given и when (появились в 5.10) могут перестать быть частью языка либо их поведение будет существенно изменено.<br>
<br>
Кроме этого, закрыт вектор атаки описанный в CVE-2013-1667 с использованием специально сконструированного ключа хэша.<br>
Это изменение портировано в maint-ветки с 5.8 по 5.16 и вошло в релизы perl 5.14.4 и 5.16.3.<br>
<br>
Приведенный список изменений не полон. Для ознакомления с полным списком изменения пожалуйста прочтите perldelta.pod релиза: <a href="https://metacpan.org/module/RJBS/perl-5.18.0/pod/perldelta.pod" target="_blank">https://metacpan.org/module/<u></u>RJBS/perl-5.18.0/pod/<u></u>perldelta.pod</a><br>





<br>
-yko<br>
______________________________<u></u>_________________<br>
Kiev-pm mailing list<br>
<a href="mailto:Kiev-pm@pm.org" target="_blank">Kiev-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/kiev-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/kiev-pm</a><span><font color="#888888"><br>
</font></span></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br>С уважением,<br> Анатолий Шарифулин.
</font></span></div>
<br></div></div>_______________________________________________<br>
RostovOnDon-pm mailing list<br>
<a href="mailto:RostovOnDon-pm@pm.org" target="_blank">RostovOnDon-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rostovondon-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rostovondon-pm</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><span style="color:rgb(69,129,142)"><i><font><span style="font-family:trebuchet ms,sans-serif">Best regards,<br>Alex Lushpai.</span></font></i></span>
</font></span></div>
<br>_______________________________________________<br>
RostovOnDon-pm mailing list<br>
<a href="mailto:RostovOnDon-pm@pm.org" target="_blank">RostovOnDon-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rostovondon-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rostovondon-pm</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>С уважением,<br> Анатолий Шарифулин.
</div>
_______________________________________________<br>RostovOnDon-pm mailing list<br><a href="mailto:RostovOnDon-pm@pm.org" target="_blank">RostovOnDon-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/rostovondon-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rostovondon-pm</a><br>
</blockquote></div><br></div></div></div><br>_______________________________________________<br>
RostovOnDon-pm mailing list<br>
<a href="mailto:RostovOnDon-pm@pm.org">RostovOnDon-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rostovondon-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rostovondon-pm</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>С уважением,<br> Анатолий Шарифулин.
</div>
_______________________________________________<br>RostovOnDon-pm mailing list<br><a href="mailto:RostovOnDon-pm@pm.org">RostovOnDon-pm@pm.org</a><br>http://mail.pm.org/mailman/listinfo/rostovondon-pm<br></blockquote></div><br></body></html>