Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Persistent(3)	      User Contributed Perl Documentation	 Persistent(3)

       Attribute::Persistent - Really lazy persistence

	   use Attribute::Persistent;

	   my %hash :persistent;
	   $hash{counter}++; # Value retained between calls to the program.

	   my %hash2 :persistent(SessionTable);	# Explicitly provide a filename.

       This module provides a way of abstracting away persistence of array and
       hash variables.

       It's useful for quick hacks when	you don't care about pulling in	the
       right DBM library and calling "tie" and so on. Its job is to reduce
       fuss for	the lazy programmer at the cost	of flexibility.

       It uses "MLDBM",	so you can use complex data structures in your arrays
       and hashes. It uses "AnyDBM_File", so if	you really care	about which
       DBM you get, you	can modify "AnyDBM_File::ISA" in a "BEGIN" block after
       loading this module.

       It works	out which DBMs belong to it by taking an md5 sum of the	source
       code. This means	that if	you change your	code, you lose your data.  If
       you like	to keep	your data while	messing	about with your	code, you need
       to explicitly give "Attribute::Persistent" a key, like this:

	   BEGIN { $Attribute::Persistent::KEY = "MyProgram"; }
	   use Attribute::Persistent; #	Order is important.

       This uniquely identifies	your program, meaning that the module doesn't
       have to grub around with	$0 and md5 sums.

       But hell, it's not supposed to be this complex. Just use	the module and
       slap ":persistent" onto your lexicals where appropriate,	and it just
       works. That's all most people need to care about.

       Originally by Simon Cozens, ""

       Maintained by Scott Penrose, ""

       Artistic	and GPL.

perl v5.32.0			  2005-06-25			 Persistent(3)


Want to link to this manual page? Use this URL:

home | help