CONFIG\_DATA(1) User Contributed Perl Documentation CONFIG\_DATA(1)

# [NAME](#NAME)

config\_data - Query or change configuration of Perl modules

# [SYNOPSIS](#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](#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 employed 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 publicly 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](#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](#module)

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

[feature](#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](#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](#set_feature)

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

[set\_config](#set_config)

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

[eval](#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](#help)

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

# [AUTHOR](#AUTHOR)

Ken Williams, kwilliams@cpan.org

# [COPYRIGHT](#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](#SEE_ALSO)

[**Module::Build**(3)](/man/os/perl-module-build/Module::Build.3), [**perl**(1)](/man/os/perl-module-build/perl.1).

2026-10-24 perl v5.44.0

---

Document: config_data(1) from perl-module-build 0.4234-r11 (Chainguard OS)
Source: https://github.com/Perl-Toolchain-Gang/Module-Build
