CONFIG_DATA(1)

πŸ’– CONFIG_DATA(1) πŸ’–

okay so this is the config_data page from the User Contributed Perl Documentation, and it's genuinely useful β€” she's here to query or change the configuration of Perl modules, and she ate πŸ’…


✨ 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 πŸ’–

So config_data gives you a command-line interface to the configuration of Perl modules. And bestie, by β€œconfiguration” we mean the vibe of β€œuser preferences” or β€œlocal settings” β€” like the little knobs and switches that make a module behave how you want ✨

This tool 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) developed independently. Iconic behavior, honestly πŸ‘‘

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 (and yeah, she would have called it Foo::Config, but that name was already 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 πŸŽ€

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. This one is required, bestie, no skipping it πŸ’€
  • 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. Cute, quick, done πŸŽ€

🌸 AUTHOR 🌸

Ken Williams, kwilliams@cpan.org 🫢


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) 🌈


mwah, bye bestie πŸ’– this page came from perl v5.40.0, dated 2024-10-29 ✨

πŸ“¦ where this page comes from