注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FY

Johnson 's Blog

 
 
 

日志

 
 

perl 范围操作符  

2012-06-06 20:00:30|  分类: perl |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

perl 范围操作符

摘自:perldoc.perl.org

当".."操作符返回bool型变量的时候,有如下几个例子:
while (<>) {     print if (2 .. 6); } 
将会打印文件的 2 ~ 6 行。

同样的:
next if (1 .. /^$/); # 跳过前面的空白行 s/^/> / if (/^$/ .. eof); # 在正文前面加上 >  

还可以这样使用:
# parse mail messages while (<>) {     $in_header =   1  .. /^$/;     $in_body   = /^$/ .. eof;     if ($in_header) {         # do something     } else { # in body         # do something else     } }  

下面的例子展示了".."和"..."的区别:
@lines = ("   - Foo",           "01 - Bar",           "1  - Baz",           "   - Quux"); foreach (@lines) {     if (/0/ .. /1/) {         print "$_\n";     } } 
这个程序只输出Bar那行。如果将".."换成"...",则还会输出Baz那行。

下面展示".."操作符返回列表型变量时候的几个例子:
for (101 .. 200) { print; }    # print $_ 100 times @foo = @foo[0 .. $#foo];    # an expensive no-op @foo = @foo[$#foo-4 .. $#foo];    # slice last 5 items 

同样可以用于字符串:
@alphabet = ("A" .. "Z"); $hexdigit = (0 .. 9, "a" .. "f")[$num & 15]; @z2 = ("01" .. "31");  print $z2[$mday]; 

还可以用于单个字符:
use charnames "greek"; my @greek_small =  ("\N{alpha}" .. "\N{omega}"); 

use charnames "greek"; my @greek_small =  map { chr } ord "\N{alpha}" .. ord "\N{omega}"; 

######################################################################################

人们似乎不知道的问题的基础上他在这里,但没错,我要说的典型用途是选择文本块,是否

 while (<>) { print if /BEGIN/ .. /END/; } 

 while (<>) { print if 3 .. 5; # prints lines 3 through 5 } 

后者是句法糖线数控制对输入( $.

 ... if $. == 3 .. $. == 5; 

这表明奇怪前瞻性

 #! /usr/bin/perl -l for ($_ = 1; $_ <= 10; ++$_) { print if $_ == 4 .. $_ == 7; } 

上一个程序的输出

 4 5 6 7 

如果您有任何括号在随后几年的测试条件:

 for (...) { do_foo($x,$y,$z) if begin($x) .. end($z); } 

  评论这张
 
阅读(324)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018