for(1){
print 1;
}
do {
print 1;
}
Run Code Online (Sandbox Code Playgroud)
这是真的吗?
或者是否有任何特殊情况这两个不相等?
Fli*_*mzy 13
一个区别是for(1)将$ _设置为值1,以及:
for(1){
print $_; # prints 1
}
Run Code Online (Sandbox Code Playgroud)
此外,do返回序列中最后一个命令的值:
my $x = do { 1 }; # $x = 1
my $y = for(1){ 1 }; # invalid
Run Code Online (Sandbox Code Playgroud)
你可能真的在寻找简单的曲线.
{
print 1;
}
Run Code Online (Sandbox Code Playgroud)
它有以下好处:
for (1)和do {}).next,last并redo在他们(像for (1)).$_(像do {}).但
for (1)但不同do {}).因此,{ ... }比想要返回值更有意义for (1) { ... },并且do { ... }非常有用.
差不多.
你可以next,last和redo一for环,但do不是一个循环-包括作为的一部分do- while"循环".所以在一个非平凡的块中,你无法确定.但是,这将有效:
do {{
...
}};
Run Code Online (Sandbox Code Playgroud)也do不会自动设置$_列表的每个成员,裸for循环的方式.