my $ent = $mw->Entry(-textvariable => \$value, -validate => 'key', -validatecommand => sub { $_[0] =~ /^(?:|-|\d+|-\d+)$/ }, # <== new regex -invalidcommand => \&lam_num_error)->pack(); ... sub print { print $value unless $value eq '-'; }