##
yours makes %names = name => first => bob
second => jane
third => joe
fourth => sue
name2 => first => john
second => me
third => oh
fourth => my
####
use strict;
my %names;
while (<>)
{
my ($label, $name1, $name2, $name3, $name4) = split /:/;
$names{$label}{"first"} = {$name1}
$names{$label}{"second"} = $name2;
$names{$label}{"third"} = {$name3}
$names{$label}{"fourth"} = $name4;
}