我是 Perl 的新手,这是我在这个博客中的第一个问题,希望得到解决。
我在一个文件夹中有一些文本(10-18)文件,我想读取所有文件并合并所有在名称列中具有公共变量的文件以及所有文件的区域列。例如:文件 1.txt
名称 sim 区域 Cas
aa 12 54 222
ab 23 2 343
aaa 32 34 34
bba 54 76 65
文件 2.txt
名称 Sim 区域 Cas
ab 45 45 56
abc 76 87 98
bba 54 87 87
aaa 33 43 54
文件 3.txt
名称 Sim 区域 Cas
aaa 43 54 65
ab 544 76 87
ac 54 65 76
输出应该是
名称 Area1 Area2 area3
aaa 32 43 54
ab 23 45 76
任何人都可以帮助解决这个问题。我是 Perl 的新手,并且很难使用哈希。
到目前为止我已经尝试过了
use strict;
use warnings;
my $input_dir = 'C:/Users/Desktop/mr/';
my $output_dir = 'C:/Users/Desktop/test_output/';
opendir SD, $input_dir || die 'cannot open the input directory $!';
my @files_list = readdir(SD);
closedir(SD);
foreach my $each_file(@files_list)
{
if ($each_file!~/^\./)
{
#print "$each_file\n"; exit;
open (IN, $input_dir.$each_file) || die 'cannot open the inputfile $!';
open (OUT, ">$output_dir$each_file") || die 'cannot open the outputfile $!';
print OUT "Name\tArea\n";
my %hash; my %area; my %remaning_data;
while(my $line=<IN>){
chomp $line;
my @line_split=split(/\t/,$line);
# print $_,"\n" foreach(@line_split);
my $name=$line_split[0];
my $area=$line_split[1];
}
}
}
任何人都可以提供有关如何完成此操作的指导吗?提前致谢。