Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

News / Blogs

- Perl Buzz
- Perl Iron Man
- Perlsphere
- Planet Perl
- TPF news
- Use Perl

See also

- CPAN
- Perl.org
- Perl.com
- Perl 5 Wiki
- Perl Jobs
- Perl Mongers
- Perl Monks

Contact

- Site designed and maintained by Jon Allen (JJ)
- http://perl.jonallen.info

- View the project page and FAQs

# config_data

Perl 5 version 10.1 documentation
Go to top • Show page index • Download PDF

# config_data

- NAME
- SYNOPSIS
- DESCRIPTION
- USAGE
- AUTHOR
- COPYRIGHT
- SEE ALSO

# NAME

config_data - Query or change configuration of Perl modules

# 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

# 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.

# 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:

- module

  Specifies the name of the module to configure (required).

- feature

  When passed the name of a `feature` , shows its value. The value will be 1 if the feature is enabled, 0 if the feature is not enabled, or empty if the feature is unknown. When no feature name is supplied, the names and values of all known features will be shown.

- config

  When passed the name of a `config` entry, shows its value. The value will be displayed using `Data::Dumper` (or similar) as perl code. When no config name is supplied, the names and values of all known config entries will be shown.

- set_feature

  Sets the given `feature` to the given boolean value. Specify the value as either 1 or 0.

- set_config

  Sets the given `config` entry to the given value.

- eval

  If the `--eval` option is used, the values in `set_config` will be evaluated as perl code before being stored. This allows moderately complicated data structures to be stored. For really complicated structures, you probably shouldn't use this command-line interface, just use the Perl API instead.

- help

  Prints a help message, including a few examples, and exits.

# AUTHOR

Ken Williams, kwilliams@cpan.org

# COPYRIGHT

Copyright (c) 1999, Ken Williams. All rights reserved.

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

# SEE ALSO

Module::Build(3), perl(1).

Page index

- NAME
- SYNOPSIS
- DESCRIPTION
- USAGE
- AUTHOR
- COPYRIGHT
- SEE ALSO

Recently read

Tools

- Preferences