#perl use strict; use warnings; use utf8; use Tk; use Tk::Spinbox; use Data::Dumper qw/Dumper/; my $mw = tkinit(); my $sb = $mw->Spinbox( -text => 1, -validate => 'all', ); $sb->configure( -validatecommand => [sub{ my $spinbox = shift; print "validatecmd:\n"; print Dumper \@_; my $input = shift; print "Eingabe = '$input'\n"; if( $input !~ m/^\d+$/ || $input < 0 || $input > 23 ) { return 0; } return 1; }, $sb], -invalidcommand => sub{ print "invalidcmd:\n"; print Dumper \@_; print "Falsche Engabe, muss Ganzzahl zwischen 0 und 23 sein (24 gibt es nicht :-p)\n"; } ); $sb->pack(); $mw->Button( -text => 'exit', -command => sub{ print "Inhalt der Spinbox: '" . $sb->get() . "'\n"; } )->pack(); $mw->MainLoop();