Hi all,
I am trying to match a specific part of a line and print the line above and below it, in full.
Through various internet searches I have found this code which I believe is suitable to the task:
use strict;
use warnings;
open( my $fh, '<', 'input.txt') or die "Error opening file - $!\n";
open OUT, ">", "output.txt" or die "could not open output.txt $! \n";
my $this_line = "";
my $do_next = 0;
while(<$fh>) {
my $last_line = $this_line;
$this_line = $_;
if ($this_line =~ /<DATA>/) {
print OUT $last_line unless $do_next;
print OUT $this_line;
$do_next = 1;
} else {
print OUT $this_line if $do_next;
$last_line = "";
$do_next = 0;
}
}
close ($fh);
__DATA__
4386_7#8
4350_7#6
4414_1#6
4465_5#1
etc...
The data are not a line by themselves, rather they are part of a line.
When I run this code the output produced is just a blank text file. It does not return any error messages, and I am sure that matches I am searching for are in the file I am searching.
Any help as to what might be the problem would be much appreciated.
Thanks in advance,
Bio
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|