LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2106|回复: 2

[求助]在perl 语言编程一书上看到的例程

[复制链接]
发表于 2010-4-7 09:47:38 | 显示全部楼层 |阅读模式
例程如下,在下不明白是什么意思,特请教。
next if (1..  /^$/); #忽略消息首部行

s/^/  /  if (/^$/  ..  eof()); #引起消息的主体

就是这两句。

它们的位置是在说明..操作符的这一段。提示是..在标量环境下,相当于sed下的行号。也有下面这个例句我可以理解的。
if ( 101..200 ) {print;}  #打印第二个一百行(这里的作用就是行号了)
发表于 2010-4-8 09:43:20 | 显示全部楼层
  1. next if (1.. /^$/);
复制代码

..前面的表达式是1,表示第一行。
..后面的表达式是^$,表示一个空行。
于是可以看出,上面这段代码是要跳过从第一行到第一个空行之间的所有行,对于Email而言,消息头和消息体之间通常是以一个空行分隔。
同理,
  1. /^$/ .. eof()
复制代码
表示从第一个空行到文件结尾

关于这个范围操作符的具体用法,参考 http://perldoc.perl.org/5.10.0/perlop.html#Range-Operators
回复 支持 反对

使用道具 举报

发表于 2010-4-28 20:47:58 | 显示全部楼层
原来是这样理解的,学习了,谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表