First question:
to print the current date and time (from the server) you can use the built in function localtime:
$mydate = localtime(time);
this will produce a string in the format:
Sun Jun 24 08:03:23 2001
and you can hack it around as you see fit.
second question:
data from a form comes in two flavours:
GET and POST the way i found is better, is to deal with the both in every script, to cover yourself.
This way i can cut and paste the following code what ever the script i'm writing is going to deal with:
my $in;
if ($ENV{'REQUEST_METHOD'} eq "GET"

{
$in = $ENV{'QUERY_STRING'};
} else {
$in = <STDIN>;
}
$in =~ s/\+/ /gi;
$in =~ s/%(..)/pack("c",hex($1))/ge;
now we have the data from the form that called the script in the varbile $in, now for the clever stuff
@data_in = split (/&/, $in);
for($i = 0; $i <= $#data_in; $i++)
{
@pairs = split (/=/, $data_in[$i]);
$data{$pairs[0]} = $pairs[1];
}
this lovey for loop makes life that much easier, it takes each name=value pair (and form data comes in this format) and makes it $data{name} = value;
now yu have all your data in the aso array %data and labeled by its form name. Handy no?
writing to a file? this is fun

again we have two flavours, deleting any current file content, and writing a fresh file, or appenending an exisiting one (adding ot the end of it)
open(MEFILE, ">myfile.dat"

;
print MEFILE "$what_I_want_to_write";
close(MEFILE);
that opens a file, deletes whatever it holds, and writes to it,
open(MEFILE, ">>myfile.dat"

;
print MEFILE "$what_I_want_to_write";
close(MEFILE);
that opens a file, and adds to the end of it, note the extra >
its a good idea to use a || die "Didn't open $!"; on the end when you open a file, so you can easily debug if it doesn't work
Good luck, hope this helps.
Sib
Siberdude
siberdude@settlers.co.uk