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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|