#!C:\Windows\Config\UMS_Scripts\perl\bin\perl use strict; use warnings; use Tk; my $globalVar = 0; sub first { my ($f1, $f2) = @_; $globalVar = $globalVar + 1; print "in sub first for the $globalVar time\n"; my $count = 1; for my $anArg (@_) { if (defined $anArg) { print "$count - $anArg\n"; } else { print "$count\n"; } $count = $count + 1; } my $value1 = $f1 -> get(); my $length1 = length $value1; print "value1: $value1 :$length1\n"; my $value2 = $f2 -> get(); my $length2 = length $value2; print "value2: $value2 :$length2\n"; if ($length1 > 0) { $f2 -> configure(-state=>'normal'); $f2 -> focus; # $f2 -> update; } else { } } sub second { my ($f1, $f2) = @_; print "in sub second\n"; $globalVar = $globalVar + 1; my $count = 1; for my $anArg (@_) { if (defined $anArg) { print "$count - $anArg\n"; } else { print "$count\n"; } $count = $count + 1; } my $value1 = $f1 -> get(); my $length1 = length $value1; print "value1: $value1 :$length1\n"; my $value2 = $f2 -> get(); my $length2 = length $value2; print "value2: $value2 :$length2\n"; } my $Mw = MainWindow->new(-title=>'Collecting Passwords'); my $entryOne = $Mw -> Entry(-validate=>'focusout') -> grid(-row=>0, -column=>0); my $entryTwo = $Mw -> Entry(-validate=>'focusout', -state=>'disabled') -> grid(-row=>0, -column=>1); $entryOne -> configure(-validatecommand=>sub {first($entryOne, $entryTwo)}); $entryTwo -> configure(-validatecommand=>sub {second($entryOne, $entryTwo)}); my $entryThree = $Mw -> Entry(-validate=>'focusout') -> grid(-row=>1, -column=>0); my $entryFour = $Mw -> Entry(-validate=>'focusout', -state=>'disabled') -> grid(-row=>1, -column=>1); $entryThree -> configure(-validatecommand=>sub {first($entryThree, $entryFour)}); $entryFour -> configure(-validatecommand=>sub {second($entryThree, $entryFour)}); MainLoop;