nick 5 nick 10 george 2 peter 3 george 14 nick 20 #### george:2,14 nick:5~~10~~20 peter:3 #### 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"; } #### ~~14ge:2 ~~20:5 peter:3