On Mon, Mar 07, 2005 at 11:00:49AM -0500, Wiggins d'Anconia wrote:
> Charles K. Clarkson wrote:
> >Suneel Kumar B <mailto:[EMAIL PROTECTED]> wrote:
> >
> >: I have a situation where in, iam updating a file by replacing few
> >: strings in some lines with another string. While doing this, Can i
> >: have an option by which i could open a file for both read and
> >: write simultaneously, so that i could search and replace the
> >: string straight away..??
> >
> >    Sounds like you need in place editing. Check out the -i switch
> >in the 'perlrun' documentation for an example.
> >
> >Charles K. Clarkson
> 
> or Tie::File,
> 
> perldoc Tie::File
> 
> http://danconia.org

The literal answer to your question would be this:

   open FILE, '/path/to/the/file', '+<'
      or die "Couldn't open: $!";

or, preferably (as it will manage some safety issues for you):

   use IO::File;
   my $file = new IO::File('/path/to/the/file', '+<') 
      or die "Couldn't open: $!";

This isn't a great solution for updating text files, however, since
they have variable-length records (e.g., you overwrite a 10-character
sentence with 12 characters and you have just stomped on the next 2
characters).

One of the above solutions (-i or Tie::File) will stand you in better
stead.

--Dks

-- 
[EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to