NAME

HTML::Mason::Parser - Mason Component Parser

SYNOPSIS

my $p = new HTML::Mason::Parser (...params...);

DESCRIPTION

A Parser object translates components into Perl subroutines. Parsers are typically embedded within (and used by) Interp objects.

PARAMETERS FOR new() CONSTRUCTOR

ignore_warnings_expr

Regular expression indicating which warnings to ignore when compiling subroutines. Any warning that is not ignored will prevent the component from being compiled and executed. For example:

ignore_warnings_expr =>
    'Global symbol.*requires explicit package'

Undefined by default, meaning that all warnings are fatal.

preamble

A piece of Perl code to insert at the beginning of every compiled subroutine. Blank by default, but ApacheHandler adds the line

use vars qw($r);

to suppress strict warnings about uses of global $r (the Apache request object).

postamble

A piece of Perl code to insert at the end of every compiled subroutine. Blank by default.

source_refer_predicate

Reference to a subroutine that decides whether a given component should be compiled with "source references" in Admin. The subroutine takes two arguments: first, the total number of characters in the component source; second, the number of characters devoted to plain text. For example, this component:

% my $noun = "World";
Hello, <% $noun %>!
How are ya?

Has 51 total bytes, 19 of which are plain text. This allows you to adjust the trade-off between the memory savings of source references and the performance advantage of in-line plain text. For example, to choose only components with at least 50% plain text:

source_refer_predicate =>
    sub { return $_[1] / $_[0] >= 0.5 }

The current default is

sub { return $_[1] >= 500 }

i.e. any component with at least 500 characters. This is an experimental setting and may change.

use_strict

Indicates whether to use strict in compiled subroutines. 1 by default.

AUTHOR

Jonathan Swartz, swartz@transbay.net

SEE ALSO

HTML::Mason, HTML::Mason::Interp, HTML::Mason::ApacheHandler, HTML::Mason::Admin