Author image Alexandre Masselot
and 1 contributors


Util::Properties - like class


rimplement something like ava.util.Properties API.

The main differences with CPAN existant Config::Properties and Data::Properties is file locking & autoload/autosave features





my $prop=Util::Properties->new()

my $prop=Util::Properties->new(filename)

my $prop=Util::Properties->new(\%h)

my $prop=Util::Properties->new(\$Util::Properties)

Create a new prop system from either:

hash ref (key=>values will be taken as property name/value)
a copy constructor from another Util::Properties object;



Get/set a name for the set of prperty (mainly used for debugging or code clarity purpose


Get/set (set if an argument is passed) a boolean value to determine if the file is to be file with property (if any is defined) is to be kept coherent with the data. This mean that any set of property will be mirrored on the file, and before any get, the file time stamp will be check to see if the data has changed into the file.


Get/set the filename


Get/set the md5 of the file


Set if a file locker is to be used (or a file locker is you do not wish to use the default). A die will be thrown if locking fails


Get the file locker (or undef).


get/set is it is possible for the file not to exist (in this case, no problem not to save...)

Properties values


get property defined by key;

$prop->prop_set(key, value)

Set a property


return a hash with all the properties


Clean the properties list;


return true if the properties does not contain any fields



load properties from $prop->file_name


Save properties from $prop->file_name (comment have been forgotten)



If a file_locker is to be defined by default creator [default is 1]


If data in memory must be consistent with file (based on file maodification time) [default is 1]


verbose level;


Alexandre Masselot, <>


implement a '+=' notation (to have mult lines defined properties)

implement a dependencies between properties


Please report any bugs or feature requests to, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.



Copyright 2006 Alexandre Masselot, all rights reserved.

This program is released under the following license: gpl