use strict; use warnings; use Tk; my $mw = MainWindow->new; my $firstentry = $mw->Entry( -validate => 'focusout', -vcmd => [ \&check_state ], )->pack(); my $secondentry = $mw->Entry( -validate => 'focusout', -vcmd => [ \&check_state ], )->pack(); my $but = $mw->Button( -text => "OK", -state => 'disabled' )->pack(); MainLoop; sub check_state { if ( $firstentry->get and $secondentry->get ) { $but->configure( -state => 'normal' ); } else { $but->configure( -state => 'disabled' ); } }