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

FreeBSD Manual Pages

  
 
  

home | help
Config::Options(3)    User Contributed Perl Documentation   Config::Options(3)

NAME
       Config::Options - module	to provide a configuration hash	with option to
       read from file.

SYNOPSIS
	       use Config::Options;

	       my $options = Config::Options->new({ verbose => 1, optionb => 2,	mood =>	"sardonic" });

	       # Access	option as a hash...
	       print "My mode is ", $options->{mood}, "\n";

	       # Merge a hash of options...
	       $options->options({ optionc => 5, style => "poor"});

	       # Merge options from file

	       $options->options("optionfile", $ENV{HOME} . "/.myoptions.conf");
	       $options->fromfile_perl();

AUTHOR
       Edward Allen, ealleniii _at_ cpan _dot_ org

DESCRIPTION
       The motivation for this module was to provide an	option hash with a
       little bit of brains. It's pretty simple	and used mainly	by other
       modules I have written.

METHODS
       new()
	   Create new options hash.  Pass it  a	hash ref to start with.
	   Please note that this reference is copied, not blessed.

		   my $options = Config::Options->new({hash_of_startup_options});

       clone()
	   Creates a clone of options object.

		   my $newoptions = $options->clone();

       options()
	   This	is a utility function for accessing options.  If passed	a
	   hashref, merges it.	If passed a scalar, returns the	value.	If
	   passed two scalars, sets the	option.

		   my $optionsb	= $options->options;	 # Duplicates option file.  Not	very usefull.
		   $options->options($hashref);		 # Same	as $options->merge($hashref);
		   my $value = $options->options("key")	 # Return option value.
		   $options->options("key", "value")	     # Set an option.

       merge()
	   Takes a hashref as argument and merges with current options.

		   $options->merge($hashref);

       deepmerge()
	   Same	as merge, except when a	value is a hash	or array reference.
	   For example:

		   my $options = Config::Options->new({	moods => [ qw(happy sad	angry) ] });
		   $options->deepmerge({ moods => [ qw(sardonic	twisted) ] });

		   print join("	", @{$options->{moods}}), "\n";

	   The above outputs:

		   happy sad angry sardonic twisted

       tofile_perl()
	   This	is used	to store options to a file. The	file is	actually a
	   perl	program	that returns a hash.  By default uses option
	   'optionfile'	as filename, or	value passed as	argument.

	   If 'optionfile' is an array,	then uses LAST option in array as
	   default.

		   $options->tofile_perl("/path/to/optionfile");

       fromfile_perl()
	   This	is used	to retreive options from a file.  The optionfile is
	   actually a perl program that	returns	a hash.	 By default uses
	   option 'optionfile' as filename if none is passed.

	   If 'optionfile' is an array,	reads all option files in order.

	   Non-existant	files are ignored.

	   Please note that values for this are	cached.

		   $options->fromfile_perl("/path/to/optionfile");

       deserialize($data, $source)
	   Takes a scalar as argument and evals	it, then merges	option.	 If
	   second option is given uses this in error message if	the eval
	   fails.

		   my $options = $options->deserialize($scalar,	$source);

       serialize()
	   Output optons hash as a scalar using	Data::Dumper.

		   my $scalar =	$options->serialize();

       del($key)
	   Removes $key	from options.

BUGS
       Deepmerge does a	poor job at recogniaing	recursive loops.
	   For example,	$options->deepmerge($options) will really screw	things
	   up.	As protection, will only loop 20 deep.

       fromfile_perl provides tainted data.
	   Since it comes from an external file, the data is considered
	   tainted.

SEE ALSO
       Config::General

LICENSE
       This program is free software; you can redistribute it and/or modify it
       under the terms of the Artistic License,	distributed with Perl.

COPYRIGHT
       Copyright (c) 2007 Edward Allen III. Some rights	reserved.

perl v5.32.0			  2008-02-20		    Config::Options(3)

NAME | SYNOPSIS | AUTHOR | DESCRIPTION | METHODS | BUGS | SEE ALSO | LICENSE | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Config::Options&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help