Making Persistent Data
Date : April 17, 2003
This pair of routines will serialize and deserialize any Perl data. Useful when you have a piece of data that you want to pass accross 2 CGI applications since CGI don’t have persistent state.
sub _serialize { my ($self, $data) = @_; my $filename = "/tmp/TTS_$$.dat"; sysopen(OUTFILE, $filename, O_RDWR|O_CREAT, 0666) or die ("Can't open $filename: $!"); flock(OUTFILE, LOCK_EX) or die ("Can't lock $filename: $!"); store($data, $filename) or die ("Can't store data structure: $!"); flock( OUTFILE, LOCK_UN ) or die ("Can't unlock $filename: $!"); return $filename; } sub _deserialize { my ($self, $filename) = @_; sysopen(OUTFILE, $filename, O_RDWR|O_CREAT, 0666) or die ("Can't open $filename: $!"); flock(OUTFILE, LOCK_EX) or die ("Can't lock $filename: $!"); my $data = retrieve($filename) or die ("Can't retrieve $filename: $!"); flock( OUTFILE, LOCK_UN ) or die ("Can't unlock $filename: $!"); return $data; }
Tags:
Perl