-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

それらは:、、、returnおよびlastですnext

そして、それらは次のように行うことができます:

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. 最近のswitch構造で、given-whenブロックと呼ばれる次の一致するケースに切り替えること。Perlスイッチブロック内のすべての条件ブロックは、最後caseにが付いているCブロックのようなものです。ただし、スイッチが一致する他のケースbreakを見つけることができるようにするものを除きます(CやJavaのようにドロップスルーするだけではありません)。 )。continue

これらすべてとさまざまな順列については、を参照してくださいperldoc perlsynperldoc.perl.orgは、Stackoverflowではなく、このことについて学ぶのに適した場所です。

于 2012-07-17T12:17:09.797 に答える