NAME
String::Interpolate::RE - interpolate variables into strings
SYNOPSIS
use String::Interpolate::RE qw( interpolate );
$str = strinterp( "${Var1} $Var2", \%vars, \%opts );
DESCRIPTION
This module interpolates variables into strings, using the passed %vars
hash as well as %ENV
as the source of the values.
It uses regular expression matching rather than Perl's built-in interpolation mechanism and thus hopefully does not suffer from the security problems inherent in using eval to interpolate into strings of suspect ancestry.
INTERFACE
- strinterp
-
$str = strinterp( $template ); $str = strinterp( $template, \%var ); $str = strinterp( $template, \%var, \%opts );
Interpolate variables into a template string, returning the resultant string. The template string is scanned for tokens of the form
$VAR ${VAR}
where
VAR
is composed of one or more word characters (as defined by the\w
Perl regular expression pattern). If a matching token is a key in either the optional%var
hash or in the%ENV
hash the corresponding value will be interpolated into the string at that point. REs which are not defined are by default left as is in the string.The
%opts
parameter may be used to modify the behavior of this function. The following (case insensitive) keys are recognized:- RaiseUndef
-
If true, a variable which has not been defined will result in an exception being raised. This defaults to false.
- EmptyUndef
-
If true, a variable which has not been defined will be replaced with the empty string. This defaults to false.
- UseENV
-
If true, the
%ENV
hash will be searched for variables which are not defined in the passed%var
hash. This defaults to true.
DIAGNOSTICS
undefined variable: %s
-
This string is thrown if the
RaiseUndef
option is set and the variable%s
is not defined.
BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to bug-string-interpolate-re@rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=String-Interpolate-RE.
SEE ALSO
Other CPAN Modules which interpolate into strings are String::Interpolate and Interpolate. This module avoids the use of eval() and presents a simpler interface.
VERSION
Version 0.01
LICENSE AND COPYRIGHT
Copyright (c) 2007 The Smithsonian Astrophysical Observatory
String::Interpolate::RE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
AUTHOR
Diab Jerius <djerius@cpan.org>