summaryrefslogtreecommitdiff
path: root/scripts/file.autoincrement.pl
blob: 3d2c53392e7591a53b92e079dc50a2f027db2e28 (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
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env perl

use strict;
use warnings;

use Data::Session;

use File::Spec;
use File::Temp;

# -----------------------------------------------

# The EXLOCK is for BSD-based systems.

my($directory) = File::Temp::newdir('temp.XXXX', CLEANUP => 1, EXLOCK => 0, TMPDIR => 1);
my($file_name) = 'autoinc.session.dat';
my($id_file)   = File::Spec -> catfile($directory, $file_name);
my($type)      = 'driver:File;id:AutoIncrement;serialize:DataDumper'; # Case-sensitive.

my($id);

{
my($session) = Data::Session -> new
(
	id_base     => 99,
	id_file     => $id_file,
	id_step     => 2,
	type        => $type,
) || die $Data::Session::errstr;

$id = $session -> id;

$session -> param(a_key => 'a_value');

print "Id: $id. Save: a_key => a_value. \n";
}

{
my($session) = Data::Session -> new
(
	id      => $id,
	id_file => $id_file,
	type    => $type,
) || die $Data::Session::errstr;

print "Id: $id. Recover: a_key => ", $session -> param('a_key'), ". \n";

$session -> delete;
}