2012-07-17 26 views
-2

,当我使用此代码什么是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" 
+11

SO不是手册。试试这里:http://perldoc.perl.org/perlsyn.html#Foreach-Loops – 2012-07-17 11:42:27

+0

“太封闭太本地化” - 错误。我刚从Google登陆,因为我不知道PERL。阅读Axeman提供的PERL文档只会让我感到困惑。 – jww 2013-08-09 07:12:21

回答

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。

+1

为了完整:'重做'。值得一提的是:'continue'具有不同的含义,但仍然处理循环。 'perldoc perlsyn'。 – DavidO 2012-07-17 16:56:24

相关问题