my %data; push @{$data{$linename}}, { station => $station, coords => $coords, easting => $easting, northing => $northing, elevation => $elevation }; #### for my $linename ( keys %data ){ for my $entry ( @{$data{$linename}} ){ print "$linename: @{$entry}{qw(station easting northing elevation)}; } }