blob: 6d885d7f6860cfd2ae480e1b131f3a6cea8f946d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!perl -w
use strict;
use vars '$file';
$file = "storable-testfile.$$";
die "Temporary file '$file' already exists" if -e $file;
END { while (-f $file) {unlink $file or die "Can't unlink '$file': $!" }}
use Storable qw (store retrieve freeze thaw nstore nfreeze);
sub slurp {
my $file = shift;
local (*FH, $/);
open FH, "<$file" or die "Can't open '$file': $!";
binmode FH;
my $contents = <FH>;
die "Can't read $file: $!" unless defined $contents;
return $contents;
}
sub store_and_retrieve {
my $data = shift;
unlink $file or die "Can't unlink '$file': $!";
open FH, ">$file" or die "Can't open '$file': $!";
binmode FH;
print FH $data or die "Can't print to '$file': $!";
close FH or die "Can't close '$file': $!";
return eval {retrieve $file};
}
sub freeze_and_thaw {
my $data = shift;
return eval {thaw $data};
}
$file;
|