Webdevelopment
The most common use of Mason is to generate dynamic web content.
Poet is a web framework designed specifically to work with Mason. Given an HTTP request, Poet generates a
corresponding Mason request, and uses the output from Mason to form the HTTP response. Poet takes care of
the web development details that are outside of Mason's domain, such as server integration and
configuration. Poet::Manual::Tutorial shows how to set up a Poet/Mason site in great detail.
Mason can also be used in the popular web frameworks Catalyst and Dancer, as a drop-in replacement for
their default template engines. See Catalyst::View::Mason2 and Dancer::Template::Mason2.
Non-webdevelopment
Mason can be used to generate any kind of dynamic content. I have personally used it to generate Apache
configuration files, emails, and C++ code.
To use Mason from a script or library, use the Mason::Interp API:
my $interp = Mason->new(
comp_root => '/path/to/comps',
data_dir => '/path/to/data',
...
);
my $output = $interp->run( '/request/path', foo => 5 )->output();
If you want to process a directory with a mix of Mason templates and static files, check out
Any::Template::ProcessDir.
To try out Mason syntax from the command line, use the mason script:
% mason
2 + 2 = <% 2+2 %>
^D
2 + 2 = 4