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

Changes for version 1.14

  • BACKWARDS COMPATIBILITY
  • Added compatibility layer for 1.0x cache API. It is now possible to use $m->cache and $m->cache_self in the old way by setting the data_cache_api parameter to '1.0'.
  • Added back $comp->create_time, which was renamed as $comp->load_time in 1.09_02, as a deprecated method.
  • Added back $interp->time and $m->current_time, which were removed in
  • 1.09_01, as deprecated methods.
    • ENHANCEMENTS
    • Implemented the long requested user-defined escapes feature. It is now possible to define your own escape flags, as well as overriding Mason's own 'h' and 'u' flags.
    • Implemented expire_if and busy_lock options in new $m->cache->get API. These retain the essence of the 1.0x options although both work a little differently.
    • Added new module to implement caching extensions, HTML::Mason::Cache::BaseCache, with accompanying documentation.
    • Enhanced Params.pod with TOC and full descriptions of all parameters. Standardized rest of documentation to link to Params.pod when referring to a parameter.
    • When a component path is not found, but that path matches a file on disk, we now print an extra warning, because this indicates that the user does not understand the distinction between component paths and filesystem paths.
    • The Request object's redirect() method now accepts an optional additional argument, allowing users to use a status code other than 302 for the redirect.
    • Mason should now work on a box with a fresh mod_perl 2/Apache 2 install. Previously, Mason unconditionally tried to load Apache::Status, which comes with mod_perl 1.x, but not (yet?) with mod_perl 2.
      • BUG FIXES
    • Installation was failing when Exception::Class wasn't installed.
    • Calling <%def> subcomponents no longer changes base_comp, which is important in autohandlers. (reported by Ian Robertson)
    • The documentation incorrectly indicated that you could create an ApacheHandler object during server startup without providing a component root. This will also shown incorrectly in the sample handler.pl in the eg/ directory.
    • Reduced Mason's memory usage when compiling and serving components. This is particularly noticeable with very large components (1-2MB or greater). Work on this will continue for future versions. (reported by Todd Holbrook)
    • %ARGS and <%shared> variables could not be accessed from <%filter>. (reported by Adam Roth)
    • Switch.pm did not work in file-based components. (reported by Gert Thiel)
    • use_strict could not be turned off. (reported by Viacheslav Voytovich)
    • $m->clear_buffer (and $m->redirect) did not work inside a component call with content. (reported by Manuel Capinha)
    • Some tests were failing on Windows, because they assumed Unix style filesystem paths. This was a problem with the tests, not the core code, but still worth fixing. (reported by Adam Rinehart).
    • $m->caller() was inadvertently left out of the documentation - fixed.
    • Fixed a small documentation error about what kinds of things are valid keys in <%flags> and <%attr> blocks.
    • Configuring multiple component roots via the httpd.conf file failed silently (as opposed to releases 1.10 - 1.12, where this failed with an error).
    • Unreadable component source files caused the confusing error message "source callback returned no source". This will now throw a much more helpful exception.
    • Errors occuring in subrequests would cause error output to be mixed with regular output when the error_mode was "output" (the default with ApacheHandler and CGIHandler). Errors in subrequests should now look the same as errors in the top request.

Documentation

Mason Administrator's Manual
Mason Developer's Manual
Mason configuration parameters
Documentation on Subclassing Internal Mason classes

Modules

A bundle to install the HTML::Mason package
High-performance, dynamic web site authoring system
Mason/mod_perl interface
Objects for Handling Component Output
Use Mason in a CGI environment
Base cache object
Compile Mason component source
A Compiler subclass that generates Mason object code
Mason Component Class
represents information about an component
Functions to escape text for Mason
Exception objects thrown by Mason
Mason Component Interpreter
Generates events based on component source lexing
Used to create simple get & get/set methods in other classes
Old module for compiling components
Mason Request Class
Component path resolver base class
Component path resolver for file-based components
a do-nothing resolver
Test harness for testing Mason
Function library used internally in Mason
Publically available functions useful outside of Mason

Provides

in lib/Apache/Mason.pm
in lib/HTML/Mason/Component/FileBased.pm
in lib/HTML/Mason/Component/Subcomponent.pm
in lib/HTML/Mason/Exceptions.pm
in lib/HTML/Mason/Exceptions.pm
in lib/HTML/Mason/Exceptions.pm
in lib/HTML/Mason/CGIHandler.pm
in lib/HTML/Mason/ApacheHandler.pm
in lib/HTML/Mason/CGIHandler.pm
in lib/HTML/Mason/ApacheHandler.pm