in reply to Entry widget, default value and validatecommand

Checking for defined $_[1] may help.

From the docs describing the second parameter in the callback:

The characters to be added (or deleted). This will be undef if validation is due to focus, explcit call to validate or if change is due to -textvariable changing.

use strict; use warnings; use Tk; my $page2; my $w=0; my $wtf; my $wentry= 30; my $wcb; $page2 = MainWindow -> new(); $wcb = $page2 ->Checkbutton (-text=> '/W:', -variable=> \$w, -font=>"A +dobe 10")->pack; $wtf = $page2 ->Entry (-textvariable=> \$wentry, -width=>8, -validate=> 'key', -validatecommand=> \&CheckKey )->pack; MainLoop; print "$w\n$wentry\n"; sub CheckKey { return 1 if ! defined $_[1]; return 1 if $_[1] =~/[0-9]/; $page2->bell; return 0; }
Update: add explanation

Perl is Huffman encoded by design.