【发布时间】:2011-03-22 22:14:36
【问题描述】:
我有一个 perl 范围问题。
use strict;
use warnings;
our @cycles = (0,1,2,3,4);
foreach my $cycle (@cycles){
my $nextcycle = 0;
foreach $nextcycle (@cycles){
if ($cycle+1 == $nextcycle){
print "found cycle+1, $nextcycle\n";
last;
}
}
print "current=$cycle, nextcycle=$nextcycle\n";
}
我得到的输出:
找到循环+1, 1
当前=0,下一个周期=0
找到循环+1、2
当前=1,下一个周期=0
找到循环+1、3
当前=2,下一个周期=0
找到循环+1、4
当前=3,下一个周期=0
当前=4,下一个周期=0
我预料到了:
找到循环+1, 1
当前=0,下一个周期=1
找到循环+1、2
当前=1,下一个周期=2
找到循环+1、3
当前=2,下一个周期=3
找到循环+1、4
当前=3,下一个周期=4
当前=4,下一个周期=0
我进一步修改了循环,使其看起来像这样并得到了我想要的:
use strict;
use warnings;
our @cycles = (0,1,2,3,4);
foreach my $cycle (@cycles){
my $nextcycle = 0;
foreach my $tempcycle (@cycles){
if ($cycle+1 == $tempcycle){
$nextcycle = $tempcycle;
print "found cycle+1, $nextcycle\n";
last;
}
}
print "current=$cycle, nextcycle=$nextcycle\n";
}
我想知道为什么第一个循环不起作用!
【问题讨论】:
标签: perl