---
name: "Text::Hogan"
section: "3pm"
platform: "linux"
package: "libtext-hogan-perl"
version: "2.03-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::Hogan"
---

# Text::Hogan(3pm)

A mustache templating engine statement-for-statement cloned from hogan.js

## NAME

Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js

## VERSION

version 2.03

## DESCRIPTION

Text::Hogan is a statement-for-statement rewrite of hogan.js \<http://twitter.github.io/hogan.js/\> in Perl.

It is a mustache \<https://mustache.github.io/\> templating engine which supports pre-compilation of your templates into pure Perl code, which then renders very quickly.

It passes the full mustache spec \<https://github.com/mustache/spec\>.

## SYNOPSIS

```
    use Text::Hogan::Compiler;
    my $text = "Hello, {{name}}!";
    my $compiler = Text::Hogan::Compiler->new;
    my $template = $compiler->compile($text);
    say $template->render({ name => "Alex" });
```

See Text::Hogan::Compiler and Text::Hogan::Template for more details.

## TEMPLATE FORMAT

The template format is documented in [**mustache**(5)](/mustache/5.md) \<https://mustache.github.io/mustache.5.html\>.

## SEE ALSO

### hogan.js

hogan.js \<http://twitter.github.io/hogan.js/\> is the original library that Text::Hogan is based on. It was written and is maintained by Twitter. It runs on Node.js and pre-compiles templates to pure JavaScript.

### Text::Caml

Text::Caml supports searching for partials by file name, by default .caml but that can be configured.

### Template::Mustache

Template::Mustache is used by Dancer::Template::Mustache and Dancer2::Template::Mustache. It supports compile once, render many times, but does not allow dumping the compiled form to disk.

### Mustache::Simple

Mustache::Simple largely supports the Mustache spec, but skips the whitespace and decimal tests (its behaviour with decimals is the same as Text::Hogan with 'numeric\_string\_as\_string' option enabled.) It supports passing objects with getters to the context hash, so that {{name}} can be rendered from `$object`-\>name if `$object`-\>can('name') returns true.

## AUTHORS

Started out statement-for-statement copied from hogan.js by Twitter!

Initial translation by Alex Balhatchet (alex@balhatchet.net)

Further improvements from:

Ed Freyfogle Mohammad S Anwar Ricky Morse Jerrad Pierce Tom Hukins Tony Finch Yanick Champoux
