use strict; use warnings; my %res; while () { chomp; my ( $name, $rest ) = split /\t/; push @{ $res{$name} }, $rest; } for $a( sort keys %res ) { print "$a:". join( "~~", @{ $res{$a} } ); print "\n"; } __DATA__ nick 5 nick 10 george 2 peter 3 george 14 nick 20 #### george:2~~14 nick:5~~10~~20 peter:3