我有一個數據結構是一個包含散列數組的散列。我想到達那裏,並拿出第一個匹配我正在尋找的值的散列。我嘗試這樣做:爲什麼Perl的移位抱怨'參數1的類型必須是數組(不是grep迭代器)。'?
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
返回一個列表,對吧?它是否在錯誤的環境中?
我現在要使用一個臨時變量,但我想弄清楚爲什麼這不起作用。
我想我會寫白名單上的'列表不是數組'100次。謝謝。 – wes 2010-03-28 22:19:57
現在有一個更好的答案爲這個常見問題解答:http://www.effectiveperlprogramming.com/blog/39 – 2010-03-28 22:31:18
@brian d foy - 何時常見問題得到更新? (即,我們會在Perl 5版本10的發行版中看到它,還是會在版本12中發佈?) – Quentin 2010-03-28 22:37:56