#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %data; while () { chomp; my ($ln, $fn, $score) = split ' '; $data{$ln} = {fn => $fn, score => $score}; } print Dumper(\%data); # Show just last names print "$_\n" for sort keys %data; # Show name and score for my $ln (sort keys %data) { my ($fn, $score) = @{$data{$ln}}{qw/fn score/}; print "$ln\t$fn\t$score\n"; } __DATA__ Lateur Bart 97 Pierce Jerrad 96 Unknown planetscape 101 Miller Katie 86