-1

我想使用 perl 将两个文件合二为一。进一步来说:

我有一个包含列的 txt 文件:

Irrelevant / Key / Various1 / ... / Various N

和第二个带有列的txt文件:

Key / Price

我想阅读这两个文件并加入它们,以便我拥有:

Key / Various1 / ... / Various N / Price 

对于第一个表的所有行。我该怎么做?我的经验很少。

我需要一个表(哈希?),然后我可以在我的脚本中进一步处理,或者一个新文件,然后我可以读取并执行其余的过程。

任何帮助将不胜感激。


谢谢你的讽刺......我已经说过我没有经验,我不知道ahshes是如何工作的,这似乎是解决方案......我找到了这段代码并尝试使用它,但它不起作用:

我像这样加载第一个文件: $list{$file}{$system}{$master_file_name}{$symbol}=$price;

第二个:$map{$file} = $charge;

我加入他们:%combined = (%map, %list);

foreach my $system (keys(%combined))
{
my $n=0;
my $i=0;
      my $workbook = Spreadsheet::WriteExcel->new("system.xls");
my $worksheet   = $workbook->add_worksheet("summary_unmapped_master_file");
map{$worksheet->write($n, $i++,$_)}   ("list", "charge", "System", "MAster_file", "symbol", "price");
$n++;$i=0;
foreach my $value (sort{$combined{$system}{$b} <=> $combined{$system}{$a}} keys %{$combined{$system}})
{   
    map{$worksheet->write($n, $i++,$_)} ($value,$list{$system}{$value});
    $n++;$i=0;
}

}

4

2 回答 2

3

我通常鼓励海报展示一些作品。您已经尝试过但有些东西不起作用,而不是要求我们为您完成您的工作,这是一种诚意的标志。所以我就不举例了。也就是说,我想向您指出Tie::Array::CSV。它可以使这成为一项更简单的任务。

于 2013-03-27T21:08:08.160 回答
0
  • 打开包含价格的文件
  • 一次读取一行价格文件,并将数据放入 Key 上的散列中。
  • 打开另一个文件
  • 打开输出文件
  • 对于另一个文件中的每一行
    • 在价格哈希中查找匹配的价格
    • 将价格附加到现有记录的末尾
    • 将新记录写入输出文件
于 2013-03-28T09:21:02.487 回答