my %eav; # Hahsh of Hashes foreach my $line( ){ chomp $line; my ($ent, $att, $val) = split /\./, $line; $eav{$ent}{$att} = $val; } print Dumper \%eav;