Доброго здоровьÑ!<br><br><div class="gmail_quote">3 марта 2010 г. 10:24 пользователь Sergey Homenkow <span dir="ltr"><<a href="mailto:sergey@homenkow.ru">sergey@homenkow.ru</a>></span> напиÑал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
У менÑ:<br>This is perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi<br><br><div class="gmail_quote">3 марта 2010 г. 12:20 пользователь Andrei <span dir="ltr"><<a href="mailto:andrei.protasovitski@gmail.com" target="_blank">andrei.protasovitski@gmail.com</a>></span> напиÑал:<div class="im">
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Доброго здоровьÑ!<br><br><div class="gmail_quote">3 марта 2010 г. 8:38 пользователь Sergey Homenkow <span dir="ltr"><<a href="mailto:sergey@homenkow.ru" target="_blank">sergey@homenkow.ru</a>></span> напиÑал:<div>
<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Вот, кÑтати:<br><br>% perl -E 'use utf8; $a{x} = 2; say utf8::is_utf8(keys %a) ? 1 : 0'<br>1<br>% perl -E 'use utf8; $a{"x"} = 2; say utf8::is_utf8(keys %a) ? 1 : 0'<br>0<br><br>Ðто ко вÑем bareword отноÑитьÑÑ.<br>
</blockquote></div><div><br>Однако<div><br><br>$ perl -E 'use utf8; $a{'x'} = 2; say utf8::is_utf8(keys %a) ? 1 : 0'<br>1<br> </div></div></div></blockquote></div></div></blockquote><div><br>ЕÑли внимательно поÑмотреть, то Ñ Ð²Ð·Ñл в одинарные кавычки, а не в двойные. Ðто важно. И bareword тут ни при чём.<br>
<br>Дело в том, что <font face="courier new,monospace">use utf8;</font> делает вÑе Ñтроковые конÑтанты utf8, Ñ‚.е. Ñтавит на Ñтроку флаг utf8. Строка в одинарных кавычках, равно как и ключ Ñ…Ñша, ÑчитаютÑÑ Ñтроковыми конÑтантами, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ñтрока в двойных кавычках Ñуть Ñтроковое выражение, которое может Ñодержать интерполÑцию. По умолчанию результат такого Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ utf8. Об Ñтом даже Ñказано в <font face="courier new,monospace">perldoc utf8</font>:<br>
<br>Note that if you have bytes with the eighth bit on in your script (for example embedded Latin-1 in your string literals), "use utf8" will be unhappy since the bytes are most probably not well-formed UTF-X. If you want to have such bytes under "use utf8", you can disable this pragma until the end the block (or file, if at top level) by "no utf8;".<br>
<br><br>Лично Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ¸ в ключах Ñтавлю только тогда, когда ключ Ñодержит пробелы. Ðо, чеÑтно говорÑ, Ñ Ð½Ðµ помню, когда мне в поÑледний раз понадобилоÑÑŒ пиÑать ключи Ñ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸ в коде. <br clear="all"></div></div><br>-- <br>
Andrei Protasovitski<br>< andrei[dot]protasovitski[at]gmail[dot]com ><br>Diemen, Netherlands<br>