У меня есть структура данных, которая представляет собой хеш, который содержит массив хешей. Я бы хотел добраться туда и вытащить первый хеш, который соответствует значению, которое я ищу. Я попробовал это:
my $result = shift grep {$_->{name} eq 'foo'} @{$hash_ref->{list}};
Но это дает мне эту ошибку: Type of arg 1 to shift must be array (not grep iterator).
Я перечитал perldoc для grep
, и я думаю, что то, что я делаю, имеет смысл. grep
возвращает список, верно? Это не в том контексте?
Сейчас я буду использовать временную переменную, но я бы хотел выяснить, почему это не работает.