Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как универсально получить значение в разных хэшах


Автор: Cyr 23.5.2014, 13:51
Есть хэши типа:
Код

$refcallControlEvents->{retrieved}->{retrievedConnection}->{both}->{callID}
$refcallControlEvents->{transferred}->{primaryOldCall}->{both}->{callID}
...
$refcallControlEvents->{queued}->{queuedConnection}->{both}->{callID}

Как универсально получить {callID} вне зависимости от вида хэша ?

Автор: arto 23.5.2014, 20:24
рекурсивно.

Автор: Cyr 3.6.2014, 15:03
А как сравнить разные хэши. Причём эти хэши имеют древовидную структуру.
отличаются только главным ключом. Нужно оставить только один.

Автор: arto 3.6.2014, 15:33
не совсем понял вопрос, но либо пишите рекурсивную функцию, либо воспользуйтесь либо Test::Deep, либо Stotable.

Автор: Cyr 4.6.2014, 08:44
arto,
А нельзя ли просто сравнить 2 хэша, без преребора всех ключей хэша и их значений? 

Автор: arto 4.6.2014, 09:12
вот я и предлагаю Storable. Или вы хотите просто сравнить их адреса?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)