#!/usr/bin/perl -- use strict; use warnings; Main( @ARGV ); exit( 0 ); sub Main { while(1){ eval { FiddleEventLog("System") ; 1 } or warn "Oooops: $@"; } } sub FiddleEventLog { my( $eventLog , $computerName ) = @_; $computerName ||= $ENV{ComputerName}; my $handle=Win32::EventLog->new($eventLog, $computerName) or die "Can't open Application EventLog\n"; my $recs; $handle->GetNumber($recs) or die "Can't get number of EventLog records\n"; my $base; $handle->GetOldest($base) or die "Can't get number of oldest EventLog record\n"; while ($x < $recs) { my $hashRef = {}; $handle->Read( EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ, $base+$x, $hashRef ) or die "Can't read EventLog entry #$x\n"; if ( $hashRef->{Source} eq "EventLog" ) { Win32::EventLog::GetMessageText($hashRef); print "Entry $x: $hashRef->{Message}\n"; } $x++; } }