Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  CONFIG::OPTIONS (3)

.ds Aq ’


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



        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");


Edward Allen, ealleniii _at_ cpan _dot_ org


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.


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.


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.


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.


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.


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.




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


Copyright (c) 2007 Edward Allen III. Some rights reserved.
Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 CONFIG::OPTIONS (3) 2008-02-20

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.