gowthamtr has asked for the wisdom of the Perl Monks concerning the following question:

i want to read just the second line from a file and replace it other. Basically updating the file if needed. i am replacing using 'sed'. But i need to check the condition whether there is a need to update.for that i need to read the 2nd line frm the file...how do i do it????

Replies are listed 'Best First'.
Re: how to read nth line from file
by davorg (Chancellor) on Oct 13, 2006 at 07:34 UTC

    The easiest solution is probably Tie::File. It's been a standard part of the Perl distribution for a few years.

    --
    <http://dave.org.uk>

    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

Re: how to read nth line from file
by GrandFather (Saint) on Oct 13, 2006 at 07:41 UTC
Re: how to read nth line from file
by blazar (Canon) on Oct 13, 2006 at 09:56 UTC
    i want to read just the second line from a file and replace it other. Basically updating the file if needed. i am replacing using 'sed'. But i need to check the condition whether there is a need to update.for that i need to read the 2nd line frm the file...how do i do it????

    This is a faq: see perldoc -q 'change one line'. It points you to Tie::File which others already suggested you. But if the files to modify are not that large you may adopt an ad hoc solution, e.g.

    $ cat foo.txt foor barr bazz quux $ perl -lpi.bak -e 's/bar/rab/ if $.==2' foo.txt $ cat foo.txt foor rabr bazz quux

    Without knowing more details about your actual needs it's hard to say...

Re: how to read nth line from file
by Hofmator (Curate) on Oct 13, 2006 at 07:35 UTC
    use Tie::File;

    -- Hofmator

    Code written by Hofmator and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.