Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Mirror of HTML-Mason on
Tree: d7fb8e9954

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Copyright (c) 1998-2012 by Jonathan Swartz. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

Welcome to Mason, a Perl-based web site development and delivery
system.  Mason allows web pages and sites to be constructed from
shared, reusable building blocks called components. Components contain
a mix of Perl and HTML, and can call each other and pass values back
and forth like subroutines. Components increase modularity and
eliminate repetitive work: common design elements (headers, footers,
menus, logos) can be extracted into their own components where they
need be changed only once to affect the whole site.

Other Mason features include powerful filtering and templating
facilities, and a HTML/data caching model.  See for more information.


Version 1 of Mason -- this distribution -- has been around since 1998, is in wide use, and is
very stable. However it has not changed much in years and is no longer actively developed.

Version 2 of Mason was released in February of 2011.  It is being very actively developed
and has a much more modern architecture. If you are just starting out, we recommend you
give Mason 2 a try. It is available at

For a summary of differences between Mason 1 and 2 see


Mason requires Perl 5.6.0 or greater, and the following CPAN modules:

* Params::Validate

* Exception::Class

* Class::Container

* File::Spec

* Scalar::Util

The following CPAN modules are optional for certain features, but not required:

* Apache::Request

* Cache::Cache



To install Mason, run the standard sequence:

	perl Build.PL
	./Build install

By default, Mason will prompt you for information about where Apache
is installed so that it can help you configure Mason to run under
mod_perl.  If you would like to skip this, invoke the Makefile.PL like

        perl Build.PL --noprompts

After Mason is installed, you will need to activate it by adding some
directives to your Apache configuration files.

The included pod docs have been pre-converted to HTML for you and
placed in the htdocs/ directory. The Mason overview (a good place to
start) is in Mason.html.


* Don't use Mason with an older mod_perl DSO (dynamic shared object).

Using Mason with a mod_perl DSO may cause your Apache server to crash
silently at startup, or fail intermittently. The fix for this problem
is to install Apache/mod_perl with mod_perl compiled statically into
the Apache binary.  Packages of Apache with a static mod_perl are
available around the net.

Testing with recent mod_perls showed improvements, but because this
bug can be so intermittent and difficult to spot, mod_perl DSO with
Mason is still strictly unsupported.

This should not be a problem with Apache2.

* Don't use Mason with PerlFreshRestart.

The mod_perl PerlFreshRestart directive attempts to reload modules on
restart in a very simplistic way. Mason cannot be reloaded this way.
The Apache::Reload module from CPAN does a much better job, and
appears to work with Mason.  However, the safest thing to do is to
actually stop and start the server.


The official Mason web site is at It's a
wiki, so most pages can be edited by any registered user.

The official documentation is at

The FAQ is at

Several mailing lists exist for Mason users and developers. Full
information can be found at

There is a book about Mason, _Embedding Perl in HTML with Mason_, by
Dave Rolsky and Ken Williams.  This book is published by O'Reilly and
Associates.  The book's home page is


The samples/ directory contains a few basic components.

The Mason site contains a variety of user-contributed code and
how-tos; see, for example.

Links to various articles containing code examples are listed at


Send bug reports to the user's mailing list for quickest response.  But
first check the mailing list archives and the official bugs list on
the Mason site to see if the problem has already been reported.

For all bug reports indicate your architecture, Apache/Perl/module
versions, etc. For installation problems send your and
httpd.conf. For component problems try to isolate the bug in a single
small component or set of components, and send those.

If you are experiencing test failures, please run the tests like this:

        ./Build test verbose=1

and send the output along with the bug report.  Otherwise we'll just
ask you to do this before we can do anything.


Mason was originally developed for the Internet technology group at
CMP Media, a publisher of technology magazines. CMP
graciously supported our efforts to release Mason as open source
software to the Perl community.  However, CMP has NO direct
involvement with the open source release and bears NO responsibility
for its support or maintenance.

Mason is provided "as is" and without any express or implied
warranties, including, without limitation, the implied warranties of
merchantibility and fitness for a particular purpose.

Mason is released under the same terms as Perl itself.  For more
information see the "README" or "Artistic" files provided with the
Perl distribution.


Jonathan Swartz
swartz <AT>

Dave Rolsky
autarch <AT>

Ken Williams
ken <AT>

John Williams
williams <AT>
Something went wrong with that request. Please try again.