#! /usr/bin/perl -w use strict; my %data; while () { my ($name, $page) = /^(.*?)\s+(\d+)$/; push @{$data{$name}}, $page; } print $_, ' ', join (',', sort @{$data{$_}}), "\n" for sort keys %data; __DATA__ Chee S. L. 8 Cheng T. H. 5 Cheng T. H. 2 Chetan M. 4 __OUTPUT__ Chee S. L. 8 Cheng T. H. 5,2 Chetan M. 4