Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
General::Interpolated(User Contributed Perl DocumentatGeneral::Interpolated(3)

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@autrijus.org>
	Wei-Hon	Chen <plasmaball@pchome.com.tw>

COPYRIGHT
       Copyright 2001 by Wei-Hon Chen <plasmaball@pchome.com.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

perl v5.24.1			  2014-04-30	      General::Interpolated(3)

NAME | SYNOPSIS | DESCRIPTION | VARIABLES | SEE ALSO | AUTHORS | COPYRIGHT | VERSION

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Config::General::Interpolated&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help