...
my $IE;
my $IETimeout = 60;
my $timeAtStart; #new global var
...
sub IENavigate( $ ) {
my $url = shift;
my $seconds = 0;
$timeAtStart = time unless ($timeAtStart);
print "IENavigate $url\n";
alarm $IETimeout;
$IE->navigate($url);
Win32::OLE->MessageLoop();
print "Finished Blocking\n";
return;
}
sub IEEvent(){
my ($Obj,$Event,@Args) = @_;
if (($IETimeout) && ($timeAtStart) && (time > ($timeAtStart + $IETimeout) ))
{&IEAlarm(17)};
print "IEEvent '$Event' @ " . time . qq|\n|;
}
####
IEEvent 'StatusTextChange' @ 1131174480
IEEvent 'CommandStateChange' @ 1131174480
IEEvent 'StatusTextChange' @ 1131174480
IEEvent 'StatusTextChange' @ 1131174480
IEEvent 'CommandStateChange' @ 1131174480
IEEvent 'StatusTextChange' @ 1131174480
...
IEEvent 'CommandStateChange' @ 1131174520
IEEvent 'CommandStateChange' @ 1131174520
IEAlarm 17
IEEvent 'CommandStateChange' @ 1131174521
Finished Blocking
####
Use of uninitialized value in concatenation (.) or string at foo.pl line 37.
...
#which is
==36== my $seconds = IENavigate( $_ );
==37== print "took $seconds\n";