在Perl中,grep和map采用表达式和列表,并评估列表中每个元素的表达式.
两者有什么区别?
解决方法
grep返回与表达式匹配的原始列表中的元素,而map返回应用于原始列表的每个元素的表达式的结果.
$perl -le 'print join " ",grep $_ & 1,(1,2,3,4,5)' 1 3 5 $perl -le 'print join " ",map $_ & 1,5)' 1 0 1 0 1
第一个示例打印列表的所有奇数元素,而第二个示例打印0或1,具体取决于相应的元素是否为奇数.