I need to ADD to the BEGINNING of a data file

fredfletcher's Avatar, Join Date: Sep 2011
Newbie Member

I have done my best in trying to find a way to be able to do the following in Perl.

I have a text file (data.txt) that I would like to add some info at the beginning of the file (prepend I believe, not append).

From what I have gathered, "append" adds to the "end" of a file. I need to add to the "beginning" of a file after a form submission.

Any help would be appreciated, thank you.

Here is what I have so far:
#!/usr/bin/perl -w

use CGI ':standard';

open WRITE, "<data.txt";

# 'name' is what is taken from my submission form
$name = param('name'); 

open(WRITE, ">>./data.txt");

print WRITE "$name\n";

close WRITE;

print "Content-type: text/html\n\n";
print "Success!";
pradeep's Avatar, Join Date: Apr 2005
Team Leader
There's no direct way of doing it, check this http://www.tek-tips.com/viewthread.cfm?qid=840900
TedH's Avatar
Newbie Member
Try this:

use strict;
use warnings;
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
print "Content-type: text/html\n\n";
my $dbfile = "data.txt";
my $newline = "aaaaa";
open DBF, "<$dbfile";
flock(DBF, 2);
read DBF, my $data, 1000000;
close DBF;

open DBF, ">$dbfile"; flock(DBF, 2);  
 print DBF $newline, "\n" . $data;
close DBF;
For test, just change aaaaa to bbbbb etc.

Hope that helps