[EMAIL PROTECTED] (Andrea Holstein) wrote:

> Prasanthi Tenneti wrote: 
>> 
>> Iam a beginner in perl.I have one question, Iam trying to write one
>> prog,in which i have to search for one word in a file, If I found that
>> word,print next 4 lines. PLs help me,how to write code. 
> 
> open FILE, "<filename"; 

Always test the result of open().

open FILE, "<filename" or die "Cannot open file: $!";


> while (<FILE>) {
>      print(<FILE>,<FILE>,<FILE>,<FILE>), last if /your_word/;
> }
> close FILE;

Did you test that?  

    print <FILE>;

will print the rest of the file.

print() expects a list.  <> in list context returns rest of whatever file 
it's reading, one line per list element. 

The same question -- with a trivial difference -- was asked a few days 
ago.

    use strict;
    use warnings;
    open FILE, "<filename" or die "Cannot open file: $!";
    while (<FILE>) {
        next unless /your_word/;
        $_ = <FILE>, print for 1..4;
        last;
    }
    close FILE, "<filename" or die "Cannot close file: $!";


Alternately, the loop could be rewritten to be (perhaps) a little clearer:

    while (<FILE>) {
        next unless /your_word/;
        for (1..4) {
            $_ = <FILE>;
            print;
        }
        last;
    }

-- 
David Wall - [EMAIL PROTECTED]
"When the end of the world comes, I want to be in Cincinnati. Everything
happens ten years later there." -- Mark Twain

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to