해시 배열을 포함하는 해시 인 데이터 구조가 있습니다. 나는 거기에 도달하고 내가 찾는 값과 일치하는 첫 번째 해시를 꺼내고 싶습니다. 나는이 시도 :Perl의 shift가 왜 불평합니까? 'shift 할 arg 타입 1은 array (grep iterator가 아님)이어야합니다.'
my $result = shift grep {$_->{name} eq 'foo'} @{$hash_ref->{list}};
을하지만 그 날이 오류를 제공합니다 Type of arg 1 to shift must be array (not grep iterator).
내가 grep
에 대한 perldoc을 다시 읽어 봤는데, 내가 무엇을하고있어 말이 생각합니다. grep
는 목록을 반환합니다. 틀린 맥락입니까?
지금 임시 변수를 사용 하겠지만 왜 이것이 작동하지 않는지 알고 싶습니다.
필자는 화이트리스트에 '목록이 배열이 아니다'라고 100 번 쓰겠다고 생각합니다. 감사. – wes
FAQ에 대한 더 나은 답변이 있습니다. http://www.effectiveperlprogramming.com/blog/39 –
@brian d foy - FAQ는 언제 업데이트됩니까? (즉, Perl 5 버전 10의 포인트 릴리스에서 보시겠습니까? 아니면 버전 12에 있습니까?) – Quentin