use strict;
use warnings;
use Data::Dumper;
sub set_hash
{
my $href = shift;
my $val = shift;
my @key = @_;
$href->{$key[0]}{$key[1]}{$key[2]} = $val;
}
my %h;
set_hash(\%h, 42, 'a', 'b', 'c');
set_hash(\%h, 69, 'x', 'y', 'z');
print Dumper(\%h);
####
use strict;
use warnings;
use Data::Dumper;
sub set_hash
{
my $href = shift;
my $val = shift;
my @key = @_;
my $s = '$href->';
for my $k (@key) { $s .= "{'" . $k . "'}" }
$s .= "='" . $val . "'";
my $rc = eval $s;
defined($rc) or die "eval error: $@";
}
my %h;
set_hash(\%h, 42, 'a', 'b', 'c');
set_hash(\%h, 69, 'x', 'y', 'z');
set_hash(\%h, 'jock', 'shock');
set_hash(\%h, 'value', 'abc', 'def', 'ghi', 'jkl', 'xyz');
print Dumper(\%h);
####
$VAR1 = {
'abc' => {
'def' => {
'ghi' => {
'jkl' => {
'xyz' => 'value'
}
}
}
},
'x' => {
'y' => {
'z' => '69'
}
},
'shock' => 'jock',
'a' => {
'b' => {
'c' => '42'
}
}
};