sub new_block { return { name => "", id => "", blk => {}, } } sub new_hash { return { } } $blk = &new_block; $blk->{name} = "hello"; $blk->{id} = 1; $blk2 = &new_hash; $blk2->{a} = "a0"; $blk2->{b} = "b0"; $blk->{blk} = $blk2; print "-------------\n"; foreach $key (sort keys %{$blk}) { print "$key $blk->{$key}\n"; } print "\n"; print "-------------\n"; foreach $key (sort keys %{$blk->{blk}}) { print "$key $blk->{blk}->{$key}\n"; } print "\n";