use strict; use Tk; my $xVConsSflEmbMax0 = 1.0; my $xVConsSflEmbMax = $xVConsSflEmbMax0; my $mw = new MainWindow(); my $entry = $mw->Entry( -textvariable => \$xVConsSflEmbMax, -width => 3, -validate => 'focusout', -validatecommand => [\&validSub,$_[0],0,1], -invalidcommand => sub {$xVConsSflEmbMax=$xVConsSflEmbMax0}, ) -> pack; MainLoop; sub validSub { my ($val,$min,$max) = @_; $val ||= 0; $min ||= -1E10; $max ||= 1E10; if( $val !~ /^\d*\.?\d+$/ ) { return 0 } elsif (($val >= $min) and ($val <= $max)) {return 1} else { return 0 } }