in reply to Find a pattern

I strongly recommend that you use strictures (use strict; use warnings;). In this case you would have received a compile error complaining about using a 'bare word'.

You should also use the three parameter version of open and you should use lexical file handles. I've updated your code with these changes below:

use warnings; use strict; my $file = "D:/perl/02.log"; open my $inFile, '<', $file or die "cant open $file: $!"; # Look for errors while (<$inFile>) { if (/^Status : ERRORS|\d+ failed/) { print "There are build errors (see line $.)\n"; exit 0; } }

Note that I also combined the commented out 'Status : ERRORS' test with the test you were using so that either string will be detected and I added the line number where the error line was found to the build errors message.

True laziness is hard work

Replies are listed 'Best First'.
Re^2: Find a pattern
by cdarke (Prior) on Jan 28, 2011 at 12:55 UTC
    Of course it depends on how you want to use this code, but personally I would change the error message to go to stderr instead of stdout, and exit with something other than zero, which by convention means success. Both can be done using die:
    print "There are build errors (see line $.)\n"; exit 0;
    into:
    die "There are build errors (see line $.)\n";