#!/usr/bin/perl use strict; use warnings; my %hash_merge; while () { chomp; my ($key, $value) = split /\|/, $_; push @{$hash_merge{$key}}, $value; print "key for $key merge values: ", $hash_merge{$key}->[0], "\n"; } use Data::Dumper; print Dumper \%hash_merge; __DATA__ 9344220001|sei10720013,21/07/2009-00-00-00,23/07/2009-12-34-44 9344220001|sei10720014,23/07/2009-20-00-23 #### key for 9344220001 merge values: sei10720013,21/07/2009-00-00-00,23/07/2009-12-34-44 key for 9344220001 merge values: sei10720013,21/07/2009-00-00-00,23/07/2009-12-34-44 $VAR1 = { '9344220001' => [ 'sei10720013,21/07/2009-00-00-00,23/07/2009-12-34-44', 'sei10720014,23/07/2009-20-00-23' ] };