in reply to Need some help building a data structure.

So what have you tried? It's usually nice to see some effort on your part first, but since I'm on a business trip with nothing to do, I came up with this heavily C-influenced approach. I also had to make some assumptions because I didn't think you provided enough input data, and you didn't give any output.
use Data::Dumper; my $base_hash = {}; while (<DATA>) { chomp; my @keys = split ':'; my $val = pop @keys; my $hashp = $base_hash; for my $key (@keys) { unless (exists $hashp->{$key}) { $hashp->{$key} = {}; } $hashp = $hashp->{$key}; } $hashp->{"VAL"} = $val; } print Dumper $base_hash; __DATA__ global:2:3:4:LINE1 global:2:3:4:5:LINE2 ########## Output ########## $VAR1 = { 'global' => { '2' => { '3' => { '4' => { 'VAL' => 'LINE1', '5' => { 'VAL' => 'LINE2' } } } } } };