perlのハッシュで重複するキーの削除と足し合わせ
2つのファイルをハッシュに格納して重複するキーを作成してからマージしたいのですが、出力ファイルのようにデリファレンスできていないデータが表示されます。どうすれば、ファイルにデータが正常通り出力されますか?
出力したい内容:キーを1項目目として、重複するキーを削除して2項目、3項目目を足し合わせます。
4項目目は最新の月を表示したいです。5項目目はそのまま出力します。
・入力ファイル01
きゅうり,7800,40,20150629,a
牛乳,10000,24,20150629,b
水,5000,48,2015029,b
にんじん,6500,30,20150629,a
きゅうり,4800,20,20150628,a
・入力ファイル02
きゅうり,7800,40,20150630,a
にんじん,6500,30,20150630,a
牛乳,5000,12,20150630,b
水,2500,24,20150630,b
水,2500,24,20150627,b
にんじん,3500,15,20150630,a
・出力ファイル01
きゅうりARRAY(0x204bbf0)
牛乳ARRAY(0x204bd70)きゅうりARRAY(0x204bbf0)
水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)きゅうりARRAY(0x204bbf0)
水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)にんじんARRAY(0x55a1a8)きゅうりARRAY(0x204bbf0)
水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)にんじんARRAY(0x55a1a8)きゅうりARRAY(0x204be90)
・出力ファイル02
きゅうりARRAY(0x204bed8)
にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8)
牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8)
水ARRAY(0x561dc0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8)
水ARRAY(0x204bcb0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8)
水ARRAY(0x204bcb0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561dc0)きゅうりARRAY(0x204bed8)
use strict;
use warnings;
# 処理開始
my $input_FILE = "sales.txt";
my $input_FILE_2 = "sales_2.txt";
my $output_FILE = $input_FILE.".cyoufuku";
my $output_FILE_2 = $input_FILE_2.".cyoufuku";
cyofuku_CHAECK($input_FILE, $output_FILE);
cyofuku_CHAECK($input_FILE_2, $output_FILE_2);
sub cyofuku_CHAECK
{
my $f_input = shift; #--- 入力ファイル名
my $f_output = shift; #--- 出力ファイル名
# 変数定義
my $rec = "";
my %data = ();
#### ファイルオープン ####
open my $fh_in , "<:encoding(utf8)" ,$f_input or die;
open my $fh_out , ">:encoding(utf8)" ,$f_output or die;
#### [処理内容記述] ####
while($rec = <$fh_in>){
my @InRecord = ();
chomp $rec;
@InRecord = split(/,/,$rec,-1);
my $key = $InRecord[0];
$data{$key} = [ \@InRecord ];
print $fh_out %data,"\n";
}
return 1;
}