The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


MojoX::Renderer::CTPP2 - CTPP2 renderer for Mojo


Add the handler:

  use MojoX::Renderer::CTPP2;

  sub startup {

    my $ctpp2 = MojoX::Renderer::CTPP2->build(
      mojo         => $self,

      INCLUDE_PATH => '/tmp;/tmp/project1',
      DELIMITER    => ';',

      CACHE_ENABLE => 0,
      COMPILE_DIR  => '/tmp/ctpp',
      COMPILE_EXT  => '.ctp2',

      template_options =>
        { arg_stack_size => 1024,
          steps_limit    => 1024*1024

      $self->renderer->add_handler( ctpp2 => $ctpp2 );


And then in the handler call render which will call the MojoX::Renderer::CTPP2 renderer.

  $c->render(templatename, format => 'htm', handler => 'ctpp2');

Template parameter are taken from $c->stash :

  $c->stash(users => [John, Peter, Ann]);



This method returns a handler for the Mojo renderer.

Supported parameters are:


build currently uses a mojo parameter pointing to the base class Mojo-object.


The INCLUDE_PATH is used to specify one or more directories in which template files are located. When a template is requested that isn't defined locally as a BLOCK, each of the INCLUDE_PATH directories is searched in turn to locate the template file. Multiple directories can be specified as a reference to a list or as a single string where each directory is delimited by ':'.

  INCLUDE_PATH => '/project1/templates/1'

  INCLUDE_PATH => '/myapp/path1:/myapp/path2:path3'


On Win32 systems, a little extra magic is invoked, ignoring delimiters that have ':' followed by a '/' or '\'. This avoids confusion when using directory names like 'C:\Blah Blah'.


Used to provide an alternative delimiter character sequence for separating paths specified in the INCLUDE_PATH. The default value for DELIMITER is ':'.

  DELIMITER => ';'

On Win32 systems, the default delimiter is a little more intelligent, splitting paths only on ':' characters that aren't followed by a '/'. This means that the following should work as planned, splitting the INCLUDE_PATH into 2 separate directories, C:/foo and C:/bar.

  # on Win32 only
  INCLUDE_PATH => 'C:/Foo:C:/Bar'

However, if you're using Win32 then it's recommended that you explicitly set the DELIMITER character to something else (e.g. ';') rather than rely on this subtle magic.


The CACHE_ENABLE can be set 0 to disable templates caching. Default - caching enable.


The COMPILE_DIR option is used to specify an alternate directory root under which compiled template files should be saved.

  COMPILE_DIR => '/tmp/ctpp'

The COMPILE_EXT option may be provided to specify a filename extension for compiled template files. It is undefined by default used extension '.ctpp2c' .

  COMPILE_EXT => '.ccc'

A hash reference of options that are passed to HTML::CTPP2->new(). See also HTML::CTPP2


Victor M Elfimov, (


Please report any bugs or feature requests to bug-mojox-renderer-ctpp2 at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

  perldoc MojoX::Renderer::CTPP2

You can also look for information at:


HTML::CTPP2(3) Mojo(3) MojoX::Renderer(3)


Copyright 2009 Victor M Elfimov

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