if循环,hash数组自增问题

if循环,hash数组自增问题



[Copy to clipboard] [ - ]
CODE:
open FH,"</var/log/httpd/test" || die "not open";
while(<FH>){
my $ip=$_;
chop ($ip);

my %hash;
         if($hash{"$ip"}<1){
              $hash{"$ip"}++;
              print values%hash;
              print "$ip\n";}

}
close (FH);

test文件格式如下:
aa
aa
aa
cc
dd

输出为:
1aa
11cc
111dd

可是程序的输入不解 :)

其实就是想去掉重复的行。

把 my %hash更改our %hash即可。if循环里的变量自增以后不集成到循环外面。谢谢各位,解决了。
为什么要用our定义呢, 把my %hash挪到while外边不就可以了吗
在if里边对%hash操作,会影响到外边定义的%hash啊

没试,我觉得是