use Tk; my $mw = MainWindow->new(); my $textvar = 1; $mw->Entry(-textvariable => \$textvar, -validatecommand => sub { my ($new,$changed,$old,$ix,$type) = @_; return 1 if (!defined($changed)); return 1 if ($new eq "") or ($type<0); $textvar = $new & 3; # use only 2 low bits print "masked out entry value\n"; return 1; }, -validate => 'key')->pack(); MainLoop;