Perl复合条件适用于什么时候?

时间:2015-03-06 11:02:16

标签: perl

我有类似

的东西
my $ token = readToken();
while (length($token) > 0) {
  # do stuff with $token
  $token = readToken();
}

我不禁感到我错过了一个我没有两个电话的建筑 到readtoken

4 个答案:

答案 0 :(得分:3)

这似乎有效

while ( length( my $token = readToken() ) > 0 ) {
  # do stuff with token
}

答案 1 :(得分:3)

你自己的答案非常好。或者你可以编写一个无限循环并手工构建while逻辑:

while () {
  my $token = readToken();
  last if length($token) == 0;
  # do stuff with $token
}

答案 2 :(得分:1)

试试这个:

my $token; 
while (($token = readToken()) && (length($token) > 0)) {
  # do stuff with $token
}

答案 3 :(得分:-1)

你原来的循环应该是:

my $token = readToken();
while (length($token) > 0) {
  # do stuff with $token
}continue{
  $token = readToken();
}

不同之处在于continue子句中的任何内容都将在调用next时执行。要再次跳过continue但是循环,请使用redo

请参阅: