Graham Ollis > String-Template > String::Template

Download:
String-Template-0.18.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.18   Source  

NAME ^

String::Template - Fills in string templates from hash of fields

VERSION ^

version 0.18

SYNOPSIS ^

  use String::Template;

  my %fields = ( num => 2, str => 'this', date => 'Feb 27, 2008' );

  my $template = "...<num%04d>...<str>...<date:%Y/%m/%d>...\n";

  print expand_string($template, \%fields);

  prints: "...0002...this...2008/02/27..."

DESCRIPTION ^

Generate strings based on a template.

FUNCTIONS ^

expand_string

 my $str = expand_string($template, \%fields, $undef_flag);

Fills in a simple template with values from a hash, replacing tokens like "<fieldname>" with the value from the hash $fields->{fieldname}.

Some special characters can be used to impose formatting on the fields:

 % - treat like a sprintf() format
     e.g.  <int%02d>

 : - treat like a L<POSIX::strftime()> format
     e.g. <date:%Y-%m-%d>

 ! - Just like ':', but with gmtime instead of localtime
     e.g. <gmdate!%Y-%m-%d %H:%M>

 # - treat like args to substr()
     e.g. <str#0,2> or <str#4>

For the ':' strftime formats, the field is parsed by Date::Parse, so it can handle any format that can handle.

Handling of undefined fields can be controlled with $undef_flag. If it is false (default), undefined fields are simply replace with an empty string. If set to true, the field is kept verbatim. This can be useful for multiple expansion passes.

expand_stringi

 my $str = expand_stringi($template, \%fields, $undef_flag);

expand_stringi works just like expand_string, except that tokens and hash keys are treated case insensitively.

missing_values

 my @missing = missing_values($template, \%fields, $dont_allow_undefs);

Checks to see if the template variables in a string template exist in a hash. Set $dont_allow_undefs to 1 to also check to see if the values for all such keys are defined.

Returns a list of missing keys or an empty list if no keys were missing.

expand_hash

 my $status = expand_hash($hash[, $maxdepth]);

Expand a hash of templates/values. This function will repeatedly replace templates in the values of the hash with the values of the hash they reference, until either all "<>" templates are gone, or it has iterated $maxdepth times (default 10).

Returns undef if there are unexpanded templates left, otherwise true.

SEE ALSO ^

String::Format performs a similar function, with a different syntax.

AUTHOR ^

Original author: Brian Duggan

Current maintainer: Graham Ollis <plicease@cpan.org>

Contributors:

Curt Tilmes

Jeremy Mates (thirg, JMATES)

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2015 by Brian Duggan.

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

syntax highlighting: