NAME
Text::Template::Inline - Quick and easy formatting of data
SYNOPSIS
use Text::Template::Inline;
# yields "\nReplace things and stuff.\n"
render {
foo => 'things',
bar => 'stuff',
}, <<'END';
Replace {foo} and {bar}.
END
# yields "Three Two One Zero"
render [qw/ Zero One Two Three /], '{3} {2} {1} {0}';
# for a blessed $obj that has id and name accessors:
render $obj, '{id} {name}';
# a "fat comma" can be used as syntactic sugar:
render $obj => '{id} {name}';
# it's also possible to traverse heirarchies of data,
# even of different types.
# the following yields "one two three"
render {
a => { d => 'one' },
b => { e => 'two' },
c => { f => [qw/ zero one two three /], },
} => '{a.d} {b.e} {c.f.3}';
# you can use a different key path separator as well,
# the following also yields "one two three"
local $Text::Template::Inline::KEY_PATH_SEP = qr/::/;
render {
a => { d => 'one' },
b => { e => 'two' },
c => { f => { g => 'three' }, },
} => '{a::d} {b::e} {c::f::g}';
DESCRIPTION
This module exports a fuction render
that substitutes identifiers of the form {key}
with corresponding values from a hashref, listref or blessed object.
The implementation is very small and simple. The small amount of code is easy to review, and the resource cost of using this module is minimal.
EXPORTED FUNCTION
There is only one function defined by this module. It is exported automatically.
- render ( $data, $template )
-
Each occurrence in
$template
of the form{key}
will be substituted with the corresponding value from$data
. If there is no such value, the substitution will not be performed. The resulting string is returned.If
$data
is a blessed object, the keys in$template
correspond to accessor methods. These methods should return a scalar when called without any arguments (other than the reciever).if
$data
is a hash reference, the keys in$template
correspond to the keys of that hash. Keys that contain non-word characters are not replaced.if
$data
is a list reference, the keys in$template
correspond to the indices of that list. Keys that contain non-digit characters are not replaced.
BUGS
If you find a bug in Text::Template::Inline please report it to the author.
AUTHOR
Zack Hobson <zhobson@gmail.com>