This is similar except that the file is only opened once (in read/write mode):#!/usr/bin/perl -w use strict; # Open the file in read mode open FILE, "file.txt" or die "Error message here $!"; # Slurp in the file my $str = do{local $/; <FILE>}; close FILE or die "Error message here $!"; # Reopen the file in write mode (clobbers old file) open FILE, ">file.txt" or die "Error message here $!"; # Add some text print FILE "Prepend this text.\n"; # Add the old contents of the file. print FILE $str; close FILE or die "Error message here $!";
#!/usr/bin/perl -w use strict; # Open the file for reading and writing open FILE, "+<file.txt" or die "Error message here $!"; # Slurp in the file my $str = do{local $/; <FILE>}; # Rewind the file seek FILE, 0, 0; # Add some text print FILE "Prepend this text.\n"; # Add the old contents of the file. print FILE $str; close FILE or die "Error message here $!";
Both of these examples assume that the data in the file isn't too large to be slurped into memory. If it is then you can modify the code to use an intermediary file.
--
John.
In reply to Re: insert into beginning of file
by jmcnamara
in thread insert into beginning of file
by rchou2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |