Du kannst sie als Argument übergeben:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#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();