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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |