if (m/(/\w{6}-\w{5})\s+begin/) { $state{$1}='begin'; } elsif (m/(\w{6}-\w{5})\s+doing-work/){ if ($state{$1} eq 'begin') { $state{$1}='doing'; } else { warn "$1: doing work without being\n"; } } elsif ((m/\s+(\w{6}-\w{5})complete/) { if ($state{$1} eq 'doing') { $state{$1}='complete'; } else { warn "$1: got complete, but state=\"$state{$1}\"\n"; } }