DAG*_*DAG 8 perl control-flow do-loops
根据perl手册for last
(http://perldoc.perl.org/functions/last.html),last
不能用于打破do {}
循环,但它没有提到替代方案.我正在维护的脚本具有以下结构:
do {
...
if (...)
{
...
last;
}
} while (...);
Run Code Online (Sandbox Code Playgroud)
而且我很确定他想要循环结束,但它实际上退出了当前子程序,所以last
如果有更好的方法可以推荐,我需要更改或重构整个循环.
yst*_*sth 16
将do"循环"包装在一个裸块(这是一个循环)中:
{
do {
...
if (...)
{
...
last;
}
} while (...);
}
Run Code Online (Sandbox Code Playgroud)
这适用于最后和重做,但不适用于下一个; 对于那个地方do块中的裸块:
do {{
...
if (...)
{
...
next;
}
...
}} while (...);
Run Code Online (Sandbox Code Playgroud)
cav*_*man 10
do BLOCK while (EXPR)
很有趣,因为这不是一个真正的循环结构.因此,不应该在那里使用last,next和redo.摆脱最后一个并调整EXPR以在找到该情况时评估错误.此外,打开严格,这应该至少给你一个警告.
归档时间: |
|
查看次数: |
4875 次 |
最近记录: |