use strict; use warnings; use Data::Dumper; my $hashref = {}; my $hashrefTemp = $hashref; $hashrefTemp = ($hashrefTemp->{a} ||= {}); $hashrefTemp = ($hashrefTemp->{b} ||= {}); $hashrefTemp->{e} = 'd'; print Dumper $hashref; #### $VAR1 = { 'a' => { 'b' => { 'e' => 'd' } } };