config_data - Query or change configuration of Perl modules


NAME

config_data - Query or change configuration of Perl modules

Back to Top


SYNOPSIS

  # Get config/feature values
  config_data --module Foo::Bar --feature bazzable
  config_data --module Foo::Bar --config magic_number
  # Set config/feature values
  config_data --module Foo::Bar --set_feature bazzable=1
  config_data --module Foo::Bar --set_config magic_number=42
  # Print a usage message
  config_data --help

Back to Top


DESCRIPTION

The config_data tool provides a command-line interface to the configuration of Perl modules. By "configuration", we mean something akin to "user preferences" or "local settings". This is a formalization and abstraction of the systems that people like Andreas Koenig (CPAN::Config), Jon Swartz (HTML::Mason::Config), Andy Wardley (Template::Config), and Larry Wall (perl's own Config.pm) have developed independently.

The configuration system emplyed here was developed in the context of Module::Build. Under this system, configuration information for a module Foo, for example, is stored in a module called Foo::ConfigData) (I would have called it Foo::Config, but that was taken by all those other systems mentioned in the previous paragraph...). These ...::ConfigData modules contain the configuration data, as well as publically accessible methods for querying and setting (yes, actually re-writing) the configuration data. The config_data script (whose docs you are currently reading) is merely a front-end for those methods. If you wish, you may create alternate front-ends.

The two types of data that may be stored are called config values and feature values. A config value may be any perl scalar, including references to complex data structures. It must, however, be serializable using Data::Dumper. A feature is a boolean (1 or 0) value.

Back to Top


USAGE

This script functions as a basic getter/setter wrapper around the configuration of a single module. On the command line, specify which module's configuration you're interested in, and pass options to get or set config or feature values. The following options are supported: