I'd recommend
Tie::File as well (compare the following code to the example shown by
broquaint above). Nevertheless, here is a simple example using traditional methods:
#!/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 $!";
This is similar except that the file is only opened once (in read/write mode):
#!/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.