Untested, but I think it should get you on the right track.
#!/usr/bin/perl -w
use strict;
use warnings;
my $m_1 = "Receive message";
@ARGV == 2 || die "usage: $0 TAB_1 TAB_5\n";
my ( $TAB_11, $TAB_35 ) = @ARGV;
my @files = <./*.log>;
# Fixed inconsistent indentation.
foreach my $file (@files) {
print $file . "\n";
my @last_few_lines;
my $how_many_lines = 3;
my $matched = 0;
open (my $HAN, $file) || die "Cannot open '$log' because: $!";
while ( (not $matched) && <$HAN> ) {
# As per roboticus, slightly altered though:
push @last_few_lines, $_;
shift @last_few_lines if @last_few_lines > $how_many_lines;
if ( m/$TAB_11|$TAB_35/ && m/$m_1/) {
print @last_few_lines, $&;
# Note that $& will contain the matched results from the
# m/$m_1/ match, in your and my designs both.
$matched = 1;
}
if ($matched) {
$matched = 0;
for (1..$how_many_lines) {
print <$HAN>;
last if eof $HAN;
}
}
}
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|