0

Hi,

I am trying to search for a line in a file, comment that line using a " * " and finally append the range of corresponding lines extracted from the same file. The corresponding extracted range of lines maybe present before or after the line (which is to be commented).

Below is my file Test.txt

   Data to be ignored 
   Data to be ignored

   PERFORM P5X98A-PGM-INITS. # This line needs to be commented with a *
   #Append a copy of the corresponding extracted range of lines here.
   Data to be ignored
   Data to be ignored

   P5X98A-PGM-INITS SECTION.
   data to be stored 1
   data to be stored 1
   P5X98A-PGM-INITS-EXIT. EXIT.

   P5X98A-ABC-LIMIT SECTION. 
   Data to be stored 2
   Data to be stored 2
   P5X98A-ABC-LIMIT-EXIT. EXIT

   Data to be ignored 
   Data to be ignored 

   PERFORM P5X98A-ABC-LIMIT.  # This line needs to be commented with a *
   #Append a copy of the corresponding extracted range of lines here.
   Data to be ignored 
   Data to be ignored

Below is my code.

my $j=0;
open FILE1, "+<Test.txt" or die "Cannot open Test.txt!";

while (<FILE1>) {

  if (/$secarr[$j]/../$exarr[$j]/) {


    next if /$secarr[$j]/ || /$exarr[$j]/;

    if(my $dummy =~  s/^$perform[$j]/* $perform[$j]/)
   {
    print FILE1 $_;
   }     

  }
 $j++;
}

Where @secarr & @exarr contains the start and end strings. And @perform array contains all the lines starting with PERFORM statements.

Thanks in advance,

2
Contributors
1
Reply
2
Views
5 Years
Discussion Span
Last Post by 2teez
0

Hi,
I believe there are alot of people that are willing to help if your question is clear enough.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.