phpman > perldoc > Config::General::Interpolated(3pm)

Markdown | JSON | MCP    

NAME
    Config::General::Interpolated - Parse variables within Config files

SYNOPSIS
     use Config::General;
     $conf = Config::General->new(
        -ConfigFile      => 'configfile',
        -InterPolateVars => 1
     );

DESCRIPTION
    This is an internal module which makes it possible to interpolate Perl style variables in your
    config file (i.e. $variable or "${variable}").

    Normally you don't call it directly.

VARIABLES
    Variables can be defined everywhere in the config and can be used afterwards as the value of an
    option. Variables cannot be used as keys or as part of keys.

    If you define a variable inside a block or a named block then it is only visible within this
    block or within blocks which are defined inside this block. Well - let's take a look to an
    example:

     # sample config which uses variables
     basedir   = /opt/ora
     user      = t_space
     sys       = unix
     <table intern>
         instance  = INTERN
         owner     = $user                 # "t_space"
         logdir    = $basedir/log          # "/opt/ora/log"
         sys       = macos
         <procs>
             misc1   = ${sys}_${instance}  # macos_INTERN
             misc2   = $user               # "t_space"
         </procs>
     </table>

    This will result in the following structure:

     {
         'basedir' => '/opt/ora',
         'user'    => 't_space'
         'sys'     => 'unix',
         'table'   => {
              'intern' => {
                    'sys'      => 'macos',
                    'logdir'   => '/opt/ora/log',
                    'instance' => 'INTERN',
                    'owner' => 't_space',
                    'procs' => {
                         'misc1' => 'macos_INTERN',
                         'misc2' => 't_space'
                }
             }
         }

    As you can see, the variable sys has been defined twice. Inside the <procs> block a variable
    ${sys} has been used, which then were interpolated into the value of sys defined inside the
    <table> block, not the sys variable one level above. If sys were not defined inside the <table>
    block then the "global" variable sys would have been used instead with the value of "unix".

    Variables inside double quotes will be interpolated, but variables inside single quotes will not
    interpolated. This is the same behavior as you know of Perl itself.

    In addition you can surround variable names with curly braces to avoid misinterpretation by the
    parser.

SEE ALSO
    Config::General

AUTHORS
     Thomas Linden <tlinden |AT| cpan.org>
     Autrijus Tang <autrijus AT autrijus.org>
     Wei-Hon Chen <plasmaball AT pchome.tw>

COPYRIGHT
    Copyright 2001 by Wei-Hon Chen <plasmaball AT pchome.tw>. Copyright 2002-2014 by Thomas Linden
    <tlinden |AT| cpan.org>.

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

    See <http://www.perl.com/perl/misc/Artistic.html>

VERSION
    2.15

Config::General::Interpolated(3pm)
NAME SYNOPSIS DESCRIPTION VARIABLES SEE ALSO AUTHORS COPYRIGHT VERSION

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-14 00:51 @216.73.216.200
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top