#!perl package MyWidget; use strict; use warnings; use Tk; sub new { my $class = shift; my $toplevel = shift or die('Missing toplevel'); my $self = bless({}, $class); $self->{todo_class_accessor_benutzen} = $self->build_widgets($toplevel); return $self; } # /new sub build_widgets { my $self = shift; my $toplevel = shift or die('Missing toplevel widget'); my $frame = $toplevel->Frame()->pack; my $name = $frame->Entry( )->pack; my $alter = $frame->Entry( )->pack; my $button = $frame->Button( -text => "Ausgabe", #-command => \&ausgabe, )->pack; my %map = ( toplevel => $toplevel, frame => $frame, name => $name, alter => $alter, button => $button, ); $button->configure(-command => sub{ $self->ausgabe(); return 1; }); return \%map; } # /build_widgets sub ausgabe { my $self = shift; my $itemhref = $self->{todo_class_accessor_benutzen}; print $itemhref->{name}->get()." ". $itemhref->{alter}->get()."\n"; return; } # /ausgabe 1; use strict; use warnings; use Tk; my $mw = MainWindow->new(); my $w = MyWidget->new($mw); $mw->MainLoop(); exit(0);