map和grep

| 暂无评论 | 暂无引用通告

-->

mapgrep都是列表处理函数,它们将一个列表转换成另一个列表。它们的语法如下:

map EXPRESSION,LIST;

map BLOCK,LIST;

grep EXPRESSION,LIST;

grep BLOCK,LIST;

map的目的是逐个转换列表中的元素,并产生一个新的列表作为结果,而grep是通过表达式或者程序块被计算为TrueFalse值来返回原始列表的一个子集列表。

下面举例说明grep的有法:

[root@supersun doc2sort]# cat map.pl

#!/usr/bin/perl -w

use strict;


my @numbers=(80,101,114,108);

print map {chr $_} @numbers;

print "\n";

[root@supersun doc2sort]# perl map.pl

Perl

[root@supersun doc2sort]#

当然我们也可以用foreach循环做同样的事,但map做的更简洁些。

grep的用法也是非常的简单:

[root@supersun doc2sort]# cat grep.pl

#!/usr/bin/perl -w

use strict;


my @list=(80,101,"hello","world",114,108);

my @number=grep {/^\d+/} @list;

print "@number\n";

[root@supersun doc2sort]# perl grep.pl

80 101 114 108

[root@supersun doc2sort]#

当然我们也可以用map来实现:

my @number=map {/^\d+/?$_:()} @list;

注意到()是不返回任何东西。

暂无引用通告

发送引用通告网址: http://supersun.info/mt/mt-tb.cgi/695
如果您想引用这篇日记到您的Blog,请复制上面的链接,放置到您发表文章时的相应界面中。

发表评论

最新资源

  • IMG_1437.JPG
  • line.png
  • bar.png
  • perl_calander.jpg

关于此日记

此日记由 supersun 发表于 2007年8月30日 11:30

此Blog上的上一篇日记文件名globbing

此Blog上的下一篇日记备份几台服务器的/home分区

首页归档页可以看到最新的日记和所有日记。