#! /usr/bin/perl -w use strict; use 5.018; # test errmsg match # sample (and partial; see the chunking in the next code) errmsgs from file: # ResultError: 404.... ( or 301 etc.) # ResultError: SSLError: [Errno 1] _ssl.c:504:.... my $errmsg = qr[ResultError:.*?(?=)]; my @data_sample = ( 'ResultError: 404 Not Found', 'ResultError: SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed', ' abcde ' ); my $data_line; for $data_line(@data_sample) { if ( $data_line =~ /$errmsg/ ) { say "\t FOUND IT: $data_line \n"; } else { say "\t NO MATCH ON $data_line \n"; } } #### C:\>test_err_finder.pl FOUND IT: ResultError: 404 Not Found FOUND IT: ResultError: SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed NO MATCH ON abcde C:\> #### #!/usr/bin/perl -w use strict; use 5.018; # find linkchecker error reports in html report, linkchecker-out20151120.html $/ = '\n
]; # errmsg from file: # ResultError: 404.... ( or 301 etc.) # ResultError: SSLError: [Errno 1] _ssl.c:504:.... my $errmsg = qr[ResultError:.*?(?=)]; my $eot = qr[]; open ($fh, "<", 'linkchecker-out20151120.html') or die "Can't open, $!"; while (<$fh> ) { if ( $_ =~ /$eot/ ) { last; } else { $_ = <$fh>; $item = $_; $item =~ s/\n//gs; $item .= "\n\n"; } if ( $item =~ /$errmsg/ ) { push @erritems, $item; } } say "Errors id'ed in LinkChecker output, 'linkchecker-out20151120.html'\n"; for $_(@erritems) { print $/; say $_; }