DigitalKitty,
One of the issues you have is that you have not given names to your keys. Instead, you have used a value as a key. This is why the output of
Data::Dumper is confusing. Consider this alternative:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %data;
while (<DATA>) {
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