#!/usr/bin/perl use strict; use warnings; use Tk; use Data::Dumper; # Test-HoH my %HoH = (    EbeneEinsText   => 'Text auf Ebene 1',    EbeneEinsH      => {        EbeneZweiZahl => 22,        EbeneZweiH      => {            EbeneDreiZahl       => 42,            EbeneDreiText       => '3. Ebenentext',        },    },    EbeneEinsText2   => 'Noch ein Text auf E1', ); print Dumper \%HoH; # vorher my $Mw = MainWindow->new(); hwids($Mw, \%HoH); $Mw->Button(-text => 'Exit', -command => sub{ print Dumper \%HoH; # nachher        Tk::exit() })->pack; MainLoop; sub hwids {    my ($parent, $hashp) = @_;    for (sort keys %$hashp) {        if (ref $hashp->{$_}) {            if (ref $hashp->{$_} eq 'HASH') {                my $newframe = $parent->Frame (-borderwidth => 1, -relief => 'sunken')                    ->pack(-padx => 20, -anchor => 'w');                hwids($newframe, $hashp->{$_});            } else {                die "Bummer: Hash member $_ is a " . ref($hashp->{$_});            }        } else {            $parent->Label (-text => $_)->pack(-anchor => 'w');            $parent->Entry (-textvariable => \$hashp->{$_})->pack(-anchor => 'w');        }    } }