perl last 退出循环问题

    LINE: while (<STDIN>) {
                       last LINE if /^$/;      # exit when done with header
                       #...
                   };


jrhmpt01:/root# cat w.pl 
while (1==1){
for ($i = 1;$i <= 10;$i++){ #从1数到10
print "1----------$i is $i
";
if ($i == 7){print "2-------$i is $i
";last;}
}};
print "xxxxxxxxxxxxxx
";


1----------$i is 1
1----------$i is 2
1----------$i is 3
1----------$i is 4
1----------$i is 5
1----------$i is 6
1----------$i is 7
2-------$i is 7
1----------$i is 1
1----------$i is 2
1----------$i is 3
1----------$i is 4
1----------$i is 5
1----------$i is 6
1----------$i is 7
2-------$i is 7
1----------$i is 1
1----------$i is 2
1----------$i is 3
1----------$i is 4
1----------$i is 5
1----------$i is 6
1----------$i is 7
2-------$i is 7

这里的last  是退出了if的循环,而没有退出while 循环

jrhmpt01:/root# cat w.pl 
$i=1;
while (1==1){
$i++;

print "1----------$i is $i
";
if ($i == 7){print "2-------$i is $i
";last;}
};
print "xxxxxxxxxxxxxx
";
jrhmpt01:/root# perl w.pl 
1----------$i is 2
1----------$i is 3
1----------$i is 4
1----------$i is 5
1----------$i is 6
1----------$i is 7
2-------$i is 7
xxxxxxxxxxxxxx

此时last 退出while 循环

原文地址:https://www.cnblogs.com/hzcya1995/p/13351075.html