Goto 与 Perl 中的本地函数
Goto vs. Local function in Perl
在 Perl 中,使用 goto
还是局部函数更好,为什么要举个例子?
比如我用的是代码
sub data {
data;
}
data();
或
goto L:
L: if ( $i == 0 )
print "Hello!!!!";
Programmers don't die. They just GOSUB
without RETURN
.
就是说,不要 在 Perl 中使用 goto
。
- 如果你想让一条语句执行一次,只写那条语句,不要使用任何流控制
- 如果你想让你的程序多次执行这些东西,把它放在一个循环中
- 如果你想让它们从不同的地方执行,把它们放在一个sub
- 如果您希望子程序在不同的程序中可用,请将它们放在一个模块中
- 不要使用
goto
在 Perl 中有一处 goto
有意义。 Matt Trout 在他的博客 post No, not that goto
, the other goto
.
中谈到了这一点
传统观点认为其他构造比 goto 更好。
如果您想重复做某事,请使用循环。
如果你想有条件地做某事,请使用带有 if 的块。
如果你想去某个地方然后回来,使用函数。
如果您想尽早退出 "jump straight to the end",通常可以使用异常来更好地编写。 (Perl 轻松管理
在 Perl 中,使用 goto
还是局部函数更好,为什么要举个例子?
比如我用的是代码
sub data {
data;
}
data();
或
goto L:
L: if ( $i == 0 )
print "Hello!!!!";
Programmers don't die. They just
GOSUB
withoutRETURN
.
就是说,不要 在 Perl 中使用 goto
。
- 如果你想让一条语句执行一次,只写那条语句,不要使用任何流控制
- 如果你想让你的程序多次执行这些东西,把它放在一个循环中
- 如果你想让它们从不同的地方执行,把它们放在一个sub
- 如果您希望子程序在不同的程序中可用,请将它们放在一个模块中
- 不要使用
goto
在 Perl 中有一处 goto
有意义。 Matt Trout 在他的博客 post No, not that goto
, the other goto
.
传统观点认为其他构造比 goto 更好。
如果您想重复做某事,请使用循环。
如果你想有条件地做某事,请使用带有 if 的块。
如果你想去某个地方然后回来,使用函数。
如果您想尽早退出 "jump straight to the end",通常可以使用异常来更好地编写。 (Perl 轻松管理