Config::Properties man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Config::Properties(3) User Contributed Perl DocumentationConfig::Properties(3)

NAME
       Config::Properties - Read and write property files

SYNOPSIS
	 use Config::Properties;

	 # reading...

	 open my $fh, '<', 'my_config.props'
	   or die "unable to open configuration file";

	 my $properties = Config::Properties->new();
	 $properties->load($fh);

	 $value = $properties->getProperty($key);

	 # saving...

	 open my $fh, '>', 'my_config.props'
	   or die "unable to open configuration file for writing";

	 $properties->setProperty($key, $value);

	 $properties->format('%s => %s');
	 $properties->store($fh, $header );

DESCRIPTION
       Config::Properties is a near implementation of the java.util.Properties
       API.  It is designed to allow easy reading, writing and manipulation of
       Java-style property files.

       The format of a Java-style property file is that of a key-value pair
       seperated by either whitespace, the colon (:) character, or the equals
       (=) character.  Whitespace before the key and on either side of the
       seperator is ignored.

       Lines that begin with either a hash (#) or a bang (!) are considered
       comment lines and ignored.

       A backslash (\) at the end of a line signifies a continuation and the
       next line is counted as part of the current line (minus the backslash,
       any whitespace after the backslash, the line break, and any whitespace
       at the beginning of the next line).

       The official references used to determine this format can be found in
       the Java API docs for java.util.Properties at
       <http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html>.

       When a property file is saved it is in the format "key=value" for each
       line. This can be changed by setting the format attribute using either
       $object->format( $format_string ) or $object->setFormat( $format_string
       ) (they do the same thing). The format string is fed to printf and must
       contain exactly two %s format characters. The first will be replaced
       with the key of the property and the second with the value. The string
       can contain no other printf control characters, but can be anything
       else. A newline will be automatically added to the end of the string.
       The current format string can be obtained by using $object->format()
       (with no arguments) or $object->getFormat().

       If a recent version of Text::Wrap is available, long lines are
       conveniently wrapped when saving.

METHODS
       "Config::Property" objects have this set of methods available:

       Config::Properties->new(%opts)
	   Creates a new Config::Properties object.

	   The optional arguments are as follows:

	   file => $filename
	       Opens and reads the entries from the given properties file

	   format => $format
	       Sets the format using for saving the properties to a file. See
	       "setFormat".

	   defaults => $defaults
	       Default configuration values.

	       The given parameter can be a hash reference or another
	       Config::Properties object.

	       In that way several configuration objects can be chained. For
	       instance:

		 my %defaults = (...);
		 my $global_config = Config::Properties->new(file => '/etc/foo.properties',
							     defaults => \%defaults);
		 my $user_config = Config::Properties->new(file => '/home/jsmith/.foo/foo.properties',
							   defaults => $global_config);

       Config::Properties->new($defaults)
	   Calling "new" in this way is deprecated.

       $p->getProperty($k, $default, $default2, ...)
	   return property $k or when not defined, the first defined
	   "$default*".

       $p->requireProperty($k, $default, $default2, ...)
	   this method is similar to "getProperty" but dies if the requested
	   property is not found.

       $p->setProperty($k, $v)
	   set property $k value to $v.

       $p->changeProperty($k, $v)
       $p->changeProperty($k, $v, $default, $default2, ...)
	   method similar to "setPropery" but that does nothing when the new
	   value is equal to the one returned by "getProperty".

	   An example shows why it is useful:

	     my $defaults=Config::Properties->new();
	     $defaults->setProperty(foo => 'bar');

	     my $p1=Config::Properties->new($defaults);
	     $p1->setProperty(foo => 'bar');   # we set here!
	     $p1->store(FILE1); foo gets saved on the file

	     my $p2=Config::Properties->new($defaults);
	     $p2->changeProperty(foo => 'bar'); # does nothing!
	     $p2->store(FILE2); # foo doesn't get saved on the file

       $p->deleteProperty($k)
       $p->deleteProperty($k, $recurse)
	   deletes property $k from the object.

	   If $recurse is true, it also deletes any $k property from the
	   default properties object.

       $p->properties
	   returns a flatten hash with all the property key/value pairs, i.e.:

	     my %props=$p->properties;

       $p->getProperties
	   returns a hash reference with all the properties (including those
	   passed as defaults).

       $p->propertyNames;
	   returns the names of all the properties (including those passed as
	   defaults).

       $p->splitToTree()
       $p->splitToTree($regexp)
       $p->splitToTree($regexp, $start)
	   builds a tree from the properties, splitting the keys with the
	   regular expression $re (or "/\./" by default). For instance:

	     my $data = <<EOD;
	     name = pete
	     date.birth = 1958-09-12
	     date.death = 2004-05-11
	     surname = moo
	     surname.length = 3
	     EOD

	     open my $fh, '<', \$data;
	     $cfg->load();
	     my $tree = $cfg->splitToTree();

	   makes...

	     $tree = { date => { birth => '1958-09-12',
				 death => '2004-05-11' },
		       name => 'pete',
		       surname => { '' => 'moo',
				    length => '3' } };

	   The $start parameter allows to split only a subset of the
	   properties. For instance, with the same data as on the previous
	   example:

	      my $subtree = $cfg->splitToTree(qr/\./, 'date');

	   makes...

	     $tree = { birth => '1958-09-12',
		       death => '2004-05-11' };

       $p->setFromTree($tree)
       $p->setFromTree($tree, $separator)
       $p->setFromTree($tree, $separator, $start)
	   This method sets properties from a tree of Perl hashes and arrays.
	   It is the opposite to splitToTree.

	   $separator is the string used to join the parts of the property
	   names. The default value is a dot (".").

	   $start is a string used as the starting point for the property
	   names.

	   For instance:

	     my $c = Config::Properties->new;
	     $c->setFromTree( { foo => { '' => one,
					 hollo => [2, 3, 4, 1] },
				bar => 'doo' },
			      '->',
			      'mama')

	     # sets properties:
	     #	    mama->bar = doo
	     #	    mama->foo = one
	     #	    mama->foo->hollo->0 = 2
	     #	    mama->foo->hollo->1 = 3
	     #	    mama->foo->hollo->2 = 4
	     #	    mama->foo->hollo->3 = 1

       $p->changeFromTree($tree)
       $p->changeFromTree($tree, $separator)
       $p->changeFromTree($tree, $separator, $start)
	   similar to "setFromTree" but internally uses "changeProperty"
	   instead of "setProperty" to set the property values.

       $p->load($file)
	   loads properties from the open file $file.

	   Old properties on the object are forgotten.

       $p->save($file)
       $p->save($file, $header)
       $p->store($file)
       $p->store($file, $header)
	   save the properties to the open file $file. Default properties are
	   not saved.

       $p->saveToString($header)
	   similar to "save", but instead of saving to a file, it returns a
	   string with the content.

       $p->getFormat()
       $p->setFormat($f)
	   get/set the format string used when saving the object to a file.

SEE ALSO
       Java docs for "java.util.Properties" at
       <http://java.sun.com/j2se/1.3/docs/api/index.html>.

       Config::Properties::Simple for a simpler alternative interface to
       Config::Properties.

AUTHORS
       "Config::Properties" was originally developed by Randy Jay Yarger. It
       was mantained for some time by Craig Manley and finally it passed hands
       to Salvador Fandin~o <sfandino@yahoo.com>, the current maintainer.

COPYRIGHT AND LICENSE
       Copyright 2001, 2002 by Randy Jay Yarger Copyright 2002, 2003 by Craig
       Manley.	Copyright 2003-2009, 2011 by Salvador Fandin~o.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.14.1			  2011-07-13		 Config::Properties(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net