为什么循环只跑了3次?

我的结果

ja...@jacky-laptop:~/tmp$ ./test2.pl 
$array[0]: a
$array[1]: b
$array[2]: c
$array[3]: d
$array[4]: e
$array[5]: f
Start
1: @array list: a b c d e f
shift: a
2: @array list: b c d e f
shift: b
3: @array list: c d e f
shift: c
finished
List @array: d e f

List @array_2: a b c 








------------------------------
#!/usr/bin/perl -w


use strict;
my @array=('a','b','c','d','e','f');
my @array_2;

for ( my $i=0; $i<@array; $i++ ) {
    print "\$array[$i]: $array[$i]\n";
}

print "Start\n";
my $count = 1;
foreach (@array) {
    print "$count: \...@array list: @array\n";
    my $tmp = shift @array;
    print "shift: $tmp\n";
    push @array_2, $tmp;
    $count++;
}

print "finished\n";

print "List \...@array: @array\n\n";

print "List \...@array_2: @array_2 \n\n";






在 2009-01-19一的 23:27 -0800,henryli写道:
> 同意Changying Li  的说法
> 
> for(@array)
> {
>       shift @array;
>       $temp = @array;
>       print $temp;
> }
> 
> 就可以知道问题所在了,更好的办法是用while。
> 
> 
> On Jan 19, 4:31 pm, zhang jy <[email protected]> wrote:
> > hi~
> >       大家好!最近在工作中遇到了一个问题。
> > #!perl -w
> > use strict;
> > my @array=('a','b','c','d','e','f');
> > my @array_2;
> > for(@array)
> > {
> >       push @array_2,shift @array;}
> >
> > for(@array)
> > {
> >     print $_;
> >
> > }
> >
> > 我希望看到的...@array内被清空,@array_2被填满。可是情况确...@array中存在d,e,f。
> > 请教一下大家,如何才能达到我想要的目的?
> > 还有,为什么存在的是def,而不是b.d.f
> > 谢谢!
> > 


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复