#!/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