Found an interesting bit in perldoc CGI:
SAVING THE STATE OF THE SCRIPT TO A FILE:
$query->save(FILEHANDLE)
This will write the current state of the form to the
provided filehandle. You can read it back in by providing
a filehandle to the new() method. Note that the
filehandle can be a file, a pipe, or whatever!
The format of the saved file is:
NAME1=VALUE1
NAME1=VALUE1'
NAME2=VALUE2
NAME3=VALUE3
=
Both name and value are URL escaped. Multi-valued CGI
parameters are represented as repeated names. A session
record is delimited by a single = symbol. You can write
out multiple records and read them back in with several
calls to new. You can do this across several sessions by
opening the file in append mode, allowing you to create
primitive guest books, or to keep a history of users'
queries. Here's a short example of creating multiple
session records:
use CGI;
open (OUT,">>test.out") || die;
$records = 5;
foreach (0..$records) {
my $q = new CGI;
$q->param(-name=>'counter',-value=>$_);
$q->save(OUT);
}
close OUT;
# reopen for reading
open (IN,"test.out") || die;
while (!eof(IN)) {
my $q = new CGI(IN);
print $q->param('counter'),"\n";
}
The file format used for save/restore is identical to that
used by the Whitehead Genome Center's data exchange format
"Boulderio", and can be manipulated and even databased
using Boulderio utilities. See
http://www.genome.wi.mit.edu/genome_software/other/boulder.ht
+ml
for further details.
Sorry for the long post...thought it could help : )
-- I'm a solipsist, and so is everyone else. (think about it)