2010-10-14 66 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