-2

使用此代码时出现此错误

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"
4

1 回答 1

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. 在循环的迭代之间进行簿记,这是一个 continue(请参阅链接)。
    2. 在最近的 switch 结构中切换到下一个匹配的情况,称为 given-when 块。Perl switch 块中的所有条件块都类似于case以 a 结尾的 C- 块break——除了带有 a 的块continue,它允许 switch 找到它匹配的其他情况(它不只是像在 C 和 Java 中那样丢弃)。

对于所有这些和各种排列,请参阅perldoc perlsynperldoc.perl.org是学习这些东西的更好地方,而不是 Stackoverflow。

于 2012-07-17T12:17:09.797 回答