Text::...Embperl(3pm)
β¨ Text::...Embperl β¨
okay bestie so real talk: this is Text::MicroMason::Embperl β the lil subclass that swaps MicroMason's normal lexer for one that speaks Embperl-flavored template syntax π like, alternate syntax, Embperl vibes, that whole thing.
πΈ SYNOPSIS πΈ
ngl you do not use this class directly, okay? you pass its name in to get mixed in:
use Text::MicroMason;
my $mason = Text::MicroMason::Base->new( -Embperl );
then you use the standard compile and execute methods to parse and evaluate templates, like the icon you are:
print $mason->compile( text=>$template )->( @%args );
print $mason->execute( text=>$template, @args );
Embperl syntax gives you several ways to mix Perl into a text template, and the way that it doesβ¦ obsessed π«Ά
[- my $name = $ARGS{name}; -]
[$ if $name eq 'Dave' $]
I'm sorry [+ $name +], I'm afraid I can't do that right now.
[$ else $]
[-
my $hour = (localtime)[2];
my $daypart = ( $hour > 11 ) ? 'afternoon' : 'morning';
-]
Good [+ $daypart +], [+ $name +]!
[$ endif $]
π¦ DESCRIPTION π¦
so basically this subclass replaces MicroMason's normal lexer with one that supports a syntax similar to Embperl. main character lexer energy, no cap β¨
π Compatibility with Embperl
Embperl is a full-featured application server toolkit with many fatures, of which only the templating functionality is emulated.
lowkey important: this is not a drop-in replacement for Embperl, because the implementation is quite different. that said, it should be able to process some existing templates without major changes. iykyk π
The following features of EmbPerl syntax are supported:
- Square-bracket markup tags
The following syntax features of are not supported:
- Dynamic HTML tags
π Template Syntax
The following elements are recognized by the Embperl lexer:
[- perl statements -]β arbitrary Perl code to be executed at this point in the template.[+ perl expression +]β a Perl expression to be evaluated and included in the output. the way it justβ¦ shows up in your text? iconic.[! perl statements !]β arbitrary Perl code to be executed once when the template is compiled.[$ name ... $]β supported command names are:if,elsif,else,endif,foreach,endforeach,while,endwhile,do,until,var.
π§ Private Methods
lex_token
( $type, $value ) = $mason->lex_token();
Lexer for [. ... .] tags.
Attempts to parse a token from the template text stored in the global $_ and returns a token type and value. Returns an empty list if unable to parse further due to an error.
assembler_rules()
Adds mappings from command names used in [$ ... $] tokens to the equivalent Perl syntax.
%syntax_rules = $mason->assembler_rules();
π 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.
and that's the whole page bestie, periodt π β¨
this lil number came from the User Contributed Perl Documentation, page Text::...Embperl(3pm), and it's serving perl v5.36.0 realness, dated 2023-08-10. go forth and template, queen ππ
π¦ where this page comes from
- debian trixie: libtext-micromason-perl 2.23-5 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libtext-micromason-perl 2.23-5 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libtext-micromason-perl 2.23-5 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libtext-micromason-perl 2.23-5 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms