我的结果
jacky@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 <feng...@gmail.com> 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 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论