in reply to optionmenu configure problem in perl tk

I want to validate the fields

The only widget I know of in Tk, that supports validation, is the Tk::Entry. Additionally, your program dosn't run as shown, it crashes because of the way you specify your -command callbacks. When you specify

-command => \&sub_opt,
the command is executed immediately when the Optionmenu is being created, and it will fail with an error. You want to wrap the command in or a sub{} like this:
-command => sub { \&sub_opt },
When you make callbacks, you set them up to be something that is "called later" not immediately.

Here's a bit more of an explanation:

#!/usr/bin/perl #for example the following is wrong my $row = 0; my $column = 0; for (my $i = 9; $i >= 0; $i--) { $button{$i} = $mw->Button(-text => "$i", -width => '3', -height => '1', -command => &numpress($i)) ->grid(-row => $row, -column => $column); $column++; if($column > 2){$column = 0; $row++;} } MainLoop; ####################################################### # Now the problem is here: -command => &numpress($i)) # The thing being assigned to the "-command" attribute needs # to be an anonymous subroutine, a reference to a named subroutine, # or else a reference to an array whose elements are: # named_subroutine_ref, arg1(, arg2 ...) -- in other words, # either of the following would be the right way to do what you want: -command => sub { numpress( $i ) } # or -command => [ \&numpress, $i ] #The way you had it written, your subroutine is actually being called #when the Button is being created, and Perl/Tk is trying to use the #return value of the sub as the value for "-command" -- not good.

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh