У меня есть структура данных, которая является хешем, который содержит массив хэшей. Я бы хотел туда добраться и вытащить первый хэш, который соответствует значению, которое я ищу. Я пробовал это:
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
возвращает список, не так ли? Это неправильный контекст?
Я сейчас использую временную переменную, но я хотел бы выяснить, почему это не работает.