NAME¶
Text::MicroMason::LineNumbers - Report errors at correct source code line
numbers
DESCRIPTION¶
This mixin class associates each token in a template with the line number on
which it was found, and then inserts special comments in the generated Perl
code that preserve that original source file and line number information.
This should facilitate debugging, by making it easier to match up run- time
errors with the template code that produced them.
To turn this behavior on, just add "-LineNumbers" to your MicroMason
creation call:
my $mason = Text::MicroMason->new( qw( -LineNumbers ) );
Public Methods¶
These methods are called from within the normal flow of MicroMason
functionality, and you do not need to invoke them directly.
- read()
- Clears the variables used to store the file name and first
line of a template, so that they can be set by the methods below.
- read_file()
- Saves the source file name before invoking the standard
behavior for this method.
$mason->compile( file => $filename );
- read_handle()
- Saves the caller's file name before invoking the standard
behavior for this method.
$mason->compile( handle => $filename );
- read_text()
- Saves the caller's file name before invoking the standard
behavior for this method.
$mason->compile( text => $filename );
- read_inline()
- This is similar to read_text, except it adjusts the line
numbering to reflect a template that's embdded as a literal text in the
Perl code.
$mason->compile( inline => q{
My template text goes here.
} );
- lex()
- Identical to the lex() method provided by the Base
class, except that it also inserts a stream of line-number-setting
comments into the to-be- compiled Perl code that attempt to re-synchronize
the
- assembler_rules()
- Maps the "line_num" token to a perl line number
comment.
Private Methods¶
- _get_external_caller()
- Returns the source file and line number of the first item
in the function call stack that is not a Text::MicroMason package.
SEE ALSO¶
For an overview of this templating framework, see Text::MicroMason.
This is a mixin class intended for use with Text::MicroMason::Base.
For distribution, installation, support, copyright and license information, see
Text::MicroMason::Docs::ReadMe.