Very good, works fine -the only problem it doesn't print the lines before match,only after | [reply] |
auto_w:
Sure it can. When you find the match you've the previous few lines, and can print them. The technique is just to show you how to keep track of the last few lines, in case you need to save some history.
Update: When I first read your post, I thought you wanted the code to predict the future!
...roboticus
When your only tool is a hammer, all problems look like your thumb.
| [reply] |
#!/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;
}
}
}
}
| [reply] [d/l] |
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 109.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 110.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 111.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 112.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 113.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 114.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 115.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 116.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 117.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 118.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 119.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 120.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 121.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 122.
Use of uninitialized value $_ in pattern match (m//) at ./perl4line.pl line 25, <$HAN> line 123.
| [reply] |