$angleEntry = $myForm->Entry(-width => 12, -validate => 'focusout' -validatecommand => \&angleCallback, -invalidcommand => \&angleError, -textvariable => \$angle)->pack; sub angleCallback { my ($str, $newchar, $curstr, $index, $type) = @_; if ((length($str) == 0 || !($str =~ /^\d*.?\d*/) || (str > 360)) { $angleEntry->focus; $angleEntry->selection('range', 0, 'end'); return 0; } return 1; } sub AngleError { $mainWin->messageBox(-title => 'Error', -message => 'Angle must be a number between 0.0 and 360.0', -type => 'OK'); }