php中返回,中断和继续关键字的Perl等价物是什么?

时间:2012-07-17 11:39:34

标签: php perl

使用此代码时出现此错误

if($DirEnt == "." || $DirEnt == "..") continue;

if($DirEnt == "default" && $ignore_default) continue;

错误: -

syntax error at test.pl line 35, near ")  continue"

syntax error at test.pl line 38, near ") continue"

1 个答案:

答案 0 :(得分:7)

它们是:returnlastnext

他们可以这样做:

next if $DirEnt =~ /^[.]{1,2}$/;
last if $DirEnt eq 'LastEntry!!';

为了完整起见

  • 还有一种方法可以重新开始循环:redo
  • 所有这些都带有标签:

    OUTER: while ( <$in1> ) { 
        ...
        while ( <$in2> ) { 
            ....
            redo OUTER if i_feel_like_it( $_ );
        }
    }
    
  • 最后,continue不像在C / Java系列中那样工作。它习惯于

    1. 在循环迭代之间进行簿记,这是一个继续(参见链接)。
    2. 切换到最近的交换机结构中的下一个匹配大小写,称为given-when块。 Perl交换机块中的所有条件块都类似于C - case块,最后有break - 除了那些continue的块,允许交换机找到其他情况匹配(它不会像在C和Java中那样直播)。

对于所有这些和各种排列,请参阅perldoc perlsynperldoc.perl.org是了解这些内容的更好地方,而不是Stackoverflow。