my @str = split / /;
my $pt = {}; # 如果$pt是hash。如果是对象可以new一个新的
$pt->{pga}=$str[0];
$pt->{mmi}=$str[1];
push @grid, $pt;
}
On Sun, 2009-01-11 at 15:15 +0800, junli.linux wrote:
> 那如果我要把文件的每一行都push进去,且每一行有好几个值,每个值用空格分
> 开的,我该怎么做才能不只是push最后一行呢?
> 也就是说怎么读一行,改变一个pt的指针地址?
> 谢谢
>
> 2009-01-11
>
> ______________________________________________________________________
> junli.linux
>
> ______________________________________________________________________
> 发件人: Changying Li
> 发送时间: 2009-01-10 16:43:00
> 收件人: perlchina
> 抄送:
> 主题: [PerlChina] Re: 关于push的一个问题
>
> "junli.linux" <junli.linux@gmail.com> writes:
>
> > 我的脚本:
> > open(FILE,$filename)
> > while($line=<FILE>)
> > {
> > @str=split(/ /,$line);
> > $pt->{pga}=$str[0];
> > $pt->{mmi}=$str[1];
> > push @grid,$pt;
> 这里push的是$pt,一个指针,下一个循环还是push的同一个指针,所以多次 push
> 的
> 数据是一样的 , 都是同一个指针,指向同一个位置,这个位置就是你不断的在
> 赋
> 值的地方,到最后,只保留了一个值---文件的最后一行.
>
> > }
> > close(FILE)
> > foreach $pt(@grid)
> > {print "$pt->{pga} $pt->{mmi}\n";}
> >
> >
> > 问题是结果只print出来 FILE里面的最后一行数据。不知道哪里出了问题。。
> 大家帮忙看看。
> >
> > >
>
> --
>
> Thanks & Regards
>
> Changying Li
>
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina 论坛"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---