$info= "ASC.txt"
open(INFO, $info) || die "Cannot open file: ".$infile."\n";
$sline=;
while ($sline= )
{
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列相加。
谢谢!
open(FF,"1.txt");
my @array =
;
close(FF);
my %h=();
for(@array){
chomp;
my @tmp = split(/,/);
$h{$tmp[0]}=$tmp[1];
}
my @data=();
open(FF,"2.txt");
while(){
chomp;
my @line = split(/,/);
$line[2] += $h{$line[1]};
push @data,join(",",@line);
}
close(FF);
for(@data){
print $_,"\n";
}
%s_all = (
@allinfo[0] =>@allinfo[1]);
這里出問題, 改成
$s_all{ $allinfo[0] } = $allinfo[1];
試試看...
還有就是, 養成加下面兩行的習慣吧, debug時省很多工.
use strict;
use warnings;
阅读(1781) | 评论(0) | 转发(0) |