| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > получить 1 ключ из хэша |
| Автор: sir_nuf_nuf 15.9.2008, 20:08 | ||
| Есть хэш который использовался для проверки уникальности чего - либо. По смыслу - в нем всего 1 ключ (если 2 - это ошибка бизнес - логики) Задача - красиво извлечь оттуда этот ключ. Господа, однострочники, предлагайте решения =) мое:
щитаю сие все-таки хаком =( |
| Автор: arto 15.9.2008, 20:19 |
| (keys %hash)[0]? |
| Автор: sir_nuf_nuf 15.9.2008, 21:33 | ||
arto, интуиция подводит =)
syntax error at - line 2, near ")[" Execution of - aborted due to compilation errors. |
| Автор: arto 15.9.2008, 21:50 |
| # perl -le '%a = (''a'' => 1); print ((keys %a)[0]);' a # |
| Автор: DaemonSuw 15.9.2008, 22:01 | ||||
я так понимаю "извлечь" - это удалить и получить значение, но ваше решение
выдает
Если удалять элемент не надо тогда достаточно просто ($a,undef) = each %a, или просто $a=each %a? |
| Автор: amg 16.9.2008, 06:48 | ||
|
| Автор: sir_nuf_nuf 16.9.2008, 06:58 | ||||||||
ага, в принципе хорошо, но использовать это предполагалось именнов скалярном конетксте:
Добавлено через 4 минуты и 2 секунды DaemonSuw, +1. Действительно each в cкалярном контексте решает задачу =)
Итак решение:
или в нашем случае:
|
| Автор: ginnie 16.9.2008, 11:29 | ||
sir_nuf_nuf, еще вариант
|