如何在Perl中打破循环? 梦里梦外; 2022-11-27 08:48 88阅读 0赞 本文翻译自:[How do I break out of a loop in Perl?][How do I break out of a loop in Perl] *I'm trying to use a `break` statement in a `for` loop, but since I'm also using strict subs in my Perl code, I'm getting an error saying:* **我试图在`for`循环中使用`break`语句,但由于我在Perl代码中也使用了严格的subs,我收到一个错误说:** > *Bareword "break" not allowed while "strict subs" in use at ./final.pl line 154.* **在./final.pl第154行使用“严格潜艇”时不允许使用Bareword“break”。** *Is there a workaround for this (besides disabling strict subs)?* **有没有解决方法(除了禁用严格的潜艇)?** *My code is formatted as follows:* **我的代码格式如下:** for my $entry (@array){ if ($string eq "text"){ break; } } -------------------- ### \#1楼 ### 参考:[https://stackoom.com/question/1gSA/如何在Perl中打破循环][https_stackoom.com_question_1gSA_Perl] -------------------- ### \#2楼 ### *Oh, I found it.* **哦,我找到了。** *You use [last][] instead of [break][]* **你使用[last][]而不是[break][]** for my $entry (@array){ if ($string eq "text"){ last; } } -------------------- ### \#3楼 ### *Additional data (in case you have more questions):* **其他数据(如果您有更多问题):** FOO: { for my $i ( @listone ){ for my $j ( @listtwo ){ if ( cond( $i,$j ) ){ last FOO; # ---> # | } # | } # | } # | } # <------------------------------- -------------------- ### \#4楼 ### *On a large iteration I like using interrupts.* **在大型迭代中,我喜欢使用中断。** *Just press Ctrl \+ C to quit:* **只需按Ctrl \+ C退出:** my $exitflag = 0; $SIG{INT} = sub { $exitflag=1 }; while(!$exitflag) { # Do your stuff } -------------------- ### \#5楼 ### *Simply `last` would work here:* **`last`可以在这里工作:** for my $entry (@array){ if ($string eq "text"){ last; } } *If you have nested loops, then `last` will exit from the innermost.* **如果你有嵌套循环,那么`last`将退出最里面。** *Use labels in this case:* **在这种情况下使用标签:** LBL_SCORE: { for my $entry1 ( @array1 ){ for my $entry2 ( @array2 ){ if ( $entry1 eq $entry2 ){ # or any condition last LBL_SCORE; } } } } *Given `last` statement will make compiler to come out from both the loops.* **鉴于`last`语句将使编译器从两个循环中出来。** *Same can be done in any number of loops, and labels can be fixed anywhere.* **可以在任意数量的循环中完成相同的操作,并且标签可以在任何地方固定。** [How do I break out of a loop in Perl]: https://oldbug.net/q/1gSA/How-do-I-break-out-of-a-loop-in-Perl [https_stackoom.com_question_1gSA_Perl]: https://stackoom.com/question/1gSA/%E5%A6%82%E4%BD%95%E5%9C%A8Perl%E4%B8%AD%E6%89%93%E7%A0%B4%E5%BE%AA%E7%8E%AF [last]: http://perldoc.perl.org/functions/last.html [break]: https://perldoc.perl.org/functions/break.html
相关 如何在Java中避免无限循环? 在Java中,避免无限循环的关键在于正确设置循环条件。 1. **明确的循环条件**:每个循环都应有一个明确的结束条件。例如,迭代一个集合直到某个特定元素出现: ```ja 约定不等于承诺〃/ 2024年09月14日 18:57/ 0 赞/ 31 阅读
相关 如何在Java中优化循环性能 在Java中优化循环性能主要包括以下几个方面: 1. 尽量使用for循环:相比于while或do-while循环,for循环更简洁,可以避免意外的多次迭代。 2. 使用增强 客官°小女子只卖身不卖艺/ 2024年09月12日 00:03/ 0 赞/ 15 阅读
相关 如何打破 Java 中的嵌套循环? 问: 我有一个这样的嵌套循环结构: for (Type type : types) { for (Type t : types 曾经终败给现在/ 2024年03月29日 15:34/ 0 赞/ 20 阅读
相关 linux脚本中如何调用函数,在Linux中如何在Perl脚本中调用函数(在shell脚本中定义)... 我有两个脚本,即 shell\_script.sh和perl\_script.pl. shell\_script.sh:它有函数定义,当从Perl脚本调用时,它将以批处理模 忘是亡心i/ 2023年01月20日 15:56/ 0 赞/ 189 阅读
相关 如何在Windows系统上安装Perl 从ActiveState下载ActivePerl ( Download ActivePerl from ActiveState ) ![Download Activ 快来打我*/ 2022年12月07日 12:09/ 0 赞/ 792 阅读
相关 如何在Perl中读取和写入文件 Perl is an [ideal language][] for working with files. It has the basic capability of any 朴灿烈づ我的快乐病毒、/ 2022年12月06日 15:41/ 0 赞/ 451 阅读
相关 如何在Perl中打破循环? 本文翻译自:[How do I break out of a loop in Perl?][How do I break out of a loop in Perl] I'm 梦里梦外;/ 2022年11月27日 08:48/ 0 赞/ 89 阅读
相关 在Perl中读写Excel表 Perl中读写Excel很方便,贴段代码为以后参考。 读写Excel的组件需要另外安装,指令如下: perl -MCPAN -e shell -> install S 系统管理员/ 2022年06月09日 05:25/ 0 赞/ 337 阅读
相关 12. Perl 控制结构-循环 perl 的循环结构有, for, foreach, while, until 四种, 其中for 和 foreach 底层结构一样, 它俩是等价的. while 和 unti 系统管理员/ 2022年01月29日 17:47/ 0 赞/ 183 阅读
还没有评论,来说两句吧...