Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: How to extract certain range of text and display it?

by CountZero (Bishop)
on Oct 13, 2013 at 12:25 UTC ( #1058069=note: print w/ replies, xml ) Need Help??


in reply to How to extract certain range of text and write into another file?

Tell Perl that your records are terminated by ".EON\n\n".

use Modern::Perl; { local $/ = ".EON\n\n"; while ( my $record = <DATA> ) { say "I found: $record"; # ... now do something with $record ... } } __DATA__ $ NAME : corry $$.Inc s d $$.Oc s $$.TO G1 ty n1 EE EE M T1 T2 $$SRU G2 n1 y OO OO M T3 T4 $$SRU .EON $ NAME : patrick $$.Inc c d $$.Oc c $$.TO G1 td n3 EE EE M T5 T6 $$SRU G2 n3 y OO OO M T7 T8 $$SRU .EON

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

My blog: Imperial Deltronics


Comment on Re: How to extract certain range of text and display it?
Select or Download Code
Re^2: How to extract certain range of text and display it?
by annel (Novice) on Oct 14, 2013 at 01:43 UTC
    Hi, thanks for your response. I did it as following but nothing display of the output.
    use warnings; use strict; my $test; my @words; open(INFO,"<","testing.pl")||die"Can't open file:$!\n"; chomp (@words=<INFO>); close(INFO); local $/ = ".EOM\n\n"; while ( my $record = @words) { print $record; }
    Where did I make mistake?

      CountZero's suggestion is

      local $/ = ".EON\n\n";

      you simply have a typo:".EOM...

      CountZero's advice is more than just "setting $/". You have to
      1. define $/ before reading your file
      2. of course, spell your record separator correctly, as noted by jakeease
      3. change your logic accordingly, because a "record" now contains multiple lines (those belonging to one name)
        Thanks for your response. I have updated my code and question. Can you give me some idea where to define $/?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1058069]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (17)
As of 2014-07-24 16:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (162 votes), past polls