2010-10-14 65 views
-3

這段代碼實際上做了什麼?Perl的grep和map有什麼作用?

@array = ('hai','hello','bar','foo') ; 

print grep (/hai/ , @array); 
print grep ("hai",@array) ; 
print map (/hai/ , @array); 
print map ("hai",@array) ; 
+9

我不明白這一點?爲什麼有人將這個問題投票? – 2010-10-14 08:09:03

+2

也許他們有相同的家庭作業? ;) – 2010-10-14 16:13:53

+0

我們在_Intermediate Perl_中介紹了這些內容,但您也可以在[perlfunc](http://perldoc.perl.org/perlfunc.html)中找到它們。 – 2010-10-14 19:54:10

回答

7

試試吧......

print grep (/hai/ , @array); 
hai 
# writes all elements from @array containing 'hai' in them 

print grep ("hai",@array) ; 
haihellobarfoo 
# writes all elements, because "hai" evaluates to true 

print map (/hai/ , @array); 
1 
# writes 1 for the only element from the @array, that contains 'hai' 

print map ("hai",@array) ; 
haihaihaihai 
# maps 'hai' to each element from @array 
11

它調用mapgrep函數。其中的描述可在和mapperlfunc條目中找到。

今天谷歌破碎了嗎?

+8

:-(搜索「grep map hai」沒有任何幫助。 – mob 2010-10-14 13:55:10

+1

現在出現這個問題;) – musiKk 2010-10-14 17:02:30