LINUX.ORG.RU

perl, Как узнать есть ли имя хэша (ключ) второго уровня, прежде чем по нему обратиться к значениям?

 


0

1

Опрашиваю железку и пишу инфу в ХЭШ ХЭШей ХЭШей. После опроса оборудования условие для создания двух ключей ХЭШей второго уровня появляются всегда, а для третьего ключа как карта ляжет. Как узнать есть ли имя хэша(ключ) второго уровня для третьего случая(которое может быть а может и не быть в ХЭШе) прежде чем к нему обратиться? Ключи второго уровня - строки.
Пишу на perl редко.

★★★★

Последнее исправление: Vlad-76 (всего исправлений: 1)

Ответ на: комментарий от anonymous

так у меня сделано сейчас, только вместо второго ключа строковый паттерн.
exists $hash{$key1}{'pattern1'}
так не работает

Vlad-76 ★★★★
() автор топика
Ответ на: комментарий от Vlad-76

Покажи весь код. Или минимальный неработающий пример.

anonymous
()
Ответ на: комментарий от Vlad-76

exists $hash{$key1}{'pattern1'}

Если хотите проверить по паттерну, так сразу и говорите. Но это за O(N). Иначе никак.

use List::Util 'any';
any grep { /pattern/ } keys %{$hash{$key1}}
anonymous
()
Ответ на: комментарий от anonymous

извиняйте. Кароч все заработало, косяк был с $key1.
exists $hash{$key1}{'pattern1'} - работает
видимо долго не программировал. Спасибо за помощь.

Vlad-76 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.