Я столкнулся с препятствием в одном из своих сценариев perl, которые мне удалось решить, но я не совсем понимаю, почему он работает так, как он работает. Я прочесываю интернет, но я не нашел правильного объяснения.De-reference x количество раз для x количество структур данных
У меня есть подпрограмма, которая возвращает ссылку на хэш массивов. Хеш-ключи - это простые строки, а значения - ссылки на массивы.
я распечатать элементы массива, связанные с каждым ключом, как этот
for my $job_name (keys %$build_numbers) {
print "$job_name => ";
my @array = @{@$build_numbers{$job_name}}; # line 3
for my $item (@array) {
print "$item \n";
}
}
В то время как я могу распечатать ключи & значения, я не очень понимаю, синтаксис за 3 строки.
Наша структура данных выглядит следующим образом:
Ссылка на хеш, значения которых являются ссылки на заселенных массивах.
Чтобы извлечь элементы массива, мы должны: - разыменовать хеш-ссылку, чтобы мы могли получить доступ к клавишам - разыменовать ссылку на массив, связанную с ключом, для извлечения элементов.
Заключительный вопрос существо:
- При работе с PERL хэш хэш массивов и т.д.; чтобы извлечь элементы в «дне» дерева данных соответствующей структуры данных, мы должны поочередно разыскивать каждый уровень, чтобы достичь исходных структур данных, пока мы не получим желаемый уровень элементов?
Надеюсь, кто-то может помочь, уточнив.
Я не могу сказать, что представляет собой реальный вопрос, но ответ должен состоять в том, чтобы прочитать [perldsc] (http://perldoc.perl.org/perldsc.html) –
Вывод из hashref, '$ build_numbers-> {$ job_name} ', затем разыщите это значение, так как это arrayref,' @ {$ build_numbers -> {$ job_name}} '. Вам нужны завитки в '@ {...}' для правил приоритета. Второй «@» в вашем коде является дополнительным. Это основы, есть много способов работать с ними. Да, вам нужно пройти уровни, чтобы добраться до дна, как еще? Вы должны прочитать соответствующие документы, после этого жизнь будет намного лучше. – zdim
Является ли это синтаксический анализ какого-то рода? Обычно при создании синтаксического анализа XML или JSON вы получаете сложные структуры данных. – Sobrique