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