$DATA{1}{a}{e} = 'snu';
$DATA{2}{a}{f} = 'woo';
$DATA{3}{b} = 'foo';
$DATA{4}{a}{e} = 'bar';
$DATA{5}{d} = 'bop';
####
put_element($DATA{3}, 'h', 'i', 'worked');
####
$DATA{3}{h}{i} = 'worked';
####
sub put_element
{
my $current = shift || die("Need root hash reference for put_element!"); # reference to the current level
my $value = pop || die("Need value to be put for put_element!"); # value to be placed in structure
$current = $$current{shift(@_)} while (@_ > 0);
${$current} = $value;
return 1;
}