关于HASH数组引用问题

关于HASH数组引用问题

$info= "ASC.txt"
open(INFO, $info) || die "Cannot open file: ".$infile."\n";
$sline=<INFO>;
while ($sline= <INFO>)
{
         
         chomp;
         @allinfo=split(/,/,$sline);
         
         %s_all = (
              @allinfo[0] =>@allinfo[1]);
  
         
        }       

print %s_all;
  ASC文件是以,进行分割文件,我的目的想建立第一列和第二列关联,以第一列为key,然后
打开第二文件,以刚才key作为来计算。
问题是:在循环体外面打印hash数组时,只显示最后一行,
请教如何处理?
谢谢!
ASC.txt 文件是这样的

FA,13
FB,25
FC,37
FD,48
FE,59
FF,67
FG,88

目标文件
w1,FA,1
w2,FB,2
w3,FC,3
w4,FD,4
w5,FE,5
w6,FF,6
w7,FG,7

要求结果是:
w1,FA,14
w2,FB,27

....
就是2列相加。

谢谢!


[Copy to clipboard] [ - ]
CODE:
open(FF,"1.txt");
my @array = <FF>;
close(FF);

my %h=();
for(@array){
        chomp;
        my @tmp = split(/,/);
        $h{$tmp[0]}=$tmp[1];
}

my @data=();
open(FF,"2.txt");
while(<FF>){
        chomp;
        my @line = split(/,/);
        $line[2] += $h{$line[1]};
        push @data,join(",",@line);
}
close(FF);

for(@data){
        print $_,"\n";
}



[Copy to clipboard] [ - ]
CODE:
w1,FA,14
w2,FB,27
w3,FC,40
w4,FD,52
w5,FE,64
w6,FF,73
w7,FG,95

%s_all = (
              @allinfo[0] =>@allinfo[1]);
  
這里出問題, 改成
    $s_all{ $allinfo[0] } = $allinfo[1];

試試看...

還有就是,  養成加下面兩行的習慣吧, debug時省很多工.

use strict;
use warnings;
感谢了,今天学到了2个!谢谢!