++ed by:

2 PAUSE users

Ioan Rogers
and 22 contributors




version 0.751


build_separator $text

Takes a string and returns it in separator form. A separator is a line of text that denotes a section in a template.

build_template_section header => '=== foo ===' [, data => 'bar']

Takes a header text string and (optionally) a data string and formats them into a template section.

try_to_edit template => \$tmpl [, record => $record ]

Edits the given template if possible. Passes the updated template in to process_template (errors in the updated template must be handled there, not here).

handle_template_errors error => 'foo', template_ref => \$tmpl_str, bad_template => 'bar', rtype => 'ticket'

Should be called in process_template if errors (usually validation ones) occur while processing a record template. This method prompts the user to re-edit and updates the template given by template_ref to contain the bad template (given by the arg bad_template prefixed with the error messages given in the error arg. If an errors section already exists in the template, it is replaced with an errors section containing the new errors.

If the template you are editing is not section-based, you can override what will be prepended to the template by passing in the errors_pattern argument, and passing in old_errors if a template errors out repeatedly and there are old errors in the template that need to be replaced.

Other arguments are: rtype: the type of the record being edited. All arguments except overrides (errors_pattern and old_errors are required.


A pattern that will match on lines that count as section separators in record templates. Separator string text is remembered as $1.


A pattern that will match on lines that count as comments in record templates.

calling code must implement

run process_template


  • Jesse Vincent <jesse@bestpractical.com>

  • Chia-Liang Kao <clkao@bestpractical.com>

  • Christine Spang <christine@spang.cc>


This software is Copyright (c) 2009 by Best Practical Solutions.

This is free software, licensed under:

  The MIT (X11) License


You can make new bug reports, and view existing ones, through the web interface at https://rt.cpan.org/Public/Dist/Display.html?Name=Prophet.


  • Alex Vandiver <alexmv@bestpractical.com>

  • Casey West <casey@geeknest.com>

  • Cyril Brulebois <kibi@debian.org>

  • Florian Ragwitz <rafl@debian.org>

  • Ioan Rogers <ioanr@cpan.org>

  • Jonas Smedegaard <dr@jones.dk>

  • Kevin Falcone <falcone@bestpractical.com>

  • Lance Wicks <lw@judocoach.com>

  • Nelson Elhage <nelhage@mit.edu>

  • Pedro Melo <melo@simplicidade.org>

  • Rob Hoelz <rob@hoelz.ro>

  • Ruslan Zakirov <ruz@bestpractical.com>

  • Shawn M Moore <sartak@bestpractical.com>

  • Simon Wistow <simon@thegestalt.org>

  • Stephane Alnet <stephane@shimaore.net>

  • Unknown user <nobody@localhost>

  • Yanick Champoux <yanick@babyl.dyndns.org>

  • franck cuny <franck@lumberjaph.net>

  • robertkrimen <robertkrimen@gmail.com>

  • sunnavy <sunnavy@bestpractical.com>