my (@monks); while () { chomp; split(/ /); push(@{$monks[$_[1]]}, $_[0]); } mysub($_) for @monks; sub mysub { print join(' ', sort(@$_)) . "\n"; } __DATA__ monk1 2 monk2 5 monk3 8 monk4 4 monk5 1 monk6 5 monk7 3 monk8 7 monk9 7 #### my (@monks); while () { chomp; split(/ /); $monks[$_[1]]{$_[0]} = (); } mysub($_) for @monks; sub mysub { print join(' ', sort(keys %$_)) . "\n"; } __DATA__ monk1 2 monk2 5 monk3 8 monk4 4 monk5 1 monk6 5 monk7 3 monk8 7 monk9 7