perl redo函数详解

计算机技术 · perl 程序开发2014-01-190次浏览0 个评论

redo 操作符在不经重新计算条件的情况下重新开始一个循环块。用法如下:

text
redo LABEL
redo

如果省略了 LABEL,那么该操作符指向最内层的闭合循环。该操作符通常用于那些希望欺骗自己输入的程序:

perl
   while() {
      if (s/\\\n$// && defined($nextline =)) {
         $_ .= $nextline;
         redo;
      }
      print;      # 或者别的什么...
   }

redo 不能用于退出一个有返回值的块,比如 eval {},sub {},或者 do {},并且不能用于退出一个 grep 或者 map 操作。在打开了警告的时候,如果你 redo 一个不在你的当前词法范围的循环,那么 Perl 会警告你。
一个块本身等效于一个只执行一次的循环。因此在这样的块里的 redo 将很有效地把它变成一个循环构造。

评论

0

评论加载中…

发表评论

0/2000