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

Changes for version 1.21

  • INCOMPATIBLE CHANGES
    • The semantics of @_ for components now match Perl subroutines: @_ contains aliases to the caller's arguments, instead of copies. For example, if a component updates $_[0], the corresponding argument is updated (or an error occurs if it is not updatable). The only users that will notice this are those that update elements of @_ in components and do not expect those changes to affect the caller. If you have any doubts, grep your component tree for '\$_\[' and look for assignment statements.
  • ENHANCEMENTS
    • Cache the result of taint_is_on() for performance.
    • Mason was copying arguments several times for a request, and several more times for each component call. The unnecessary copies have been eliminated. As part of eliminating these copies, a new compiler parameter has been added, "define_args_hash". The default setting, "auto", should work with all existing Mason components. See the HTML::Mason::Compiler::ToObject docs for details. Task id #464. Suggested by Doug Treder.
    • Add more details about subclassing the compiler to the Subclassing documentation.
    • There is now a compiler parameter called "use_source_line_numbers", which can be used to turn off line numbering based on the source file. This can be useful when single stepping a component through the debugger. Task id #461.
  • BUG FIXES
    • Fixed a serious error in which a Compiler that was used on a component containing certain kinds of syntax errors would claim that any future components also contained syntax errors. Task id #467.
    • Now assigning runtime properties (such as interp) to method component objects as well as subcomponent objects. Task id #462.
    • Fixed the HTML error display. Errors were not being properly HTML-escaped. Task id #468. Reported by Jeremy Blain.
    • A bad interaction between the XS version of Params::Validate, Perl 5.00503 and taint mode has been "fixed" by requiring Params::Validate 0.59, where the problem is fixed. Task id #470.
    • The test suite now runs the taint mode tests is no longer skipped on earlier versions of Perl. Task id #471.
    • The ApacheHandler module would go into an infinite memory-eating loop when run in taint mode with Perl 5.6.1. Task id #469. Reported by William McKee.

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
Mason Subcomponent 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/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
in lib/HTML/Mason/Request.pm