/usr/share/perl5/Mason.pm is in libmason-perl 2.24-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | package Mason;
$Mason::VERSION = '2.24';
use Mason::Interp;
use Mason::PluginManager;
use Mason::Util qw(can_load uniq);
use Method::Signatures::Simple;
use strict;
use warnings;
method new ($class: %params) {
# Extract plugins and base_interp_class
#
my $plugin_specs = delete( $params{plugins} ) || [];
my $base_interp_class = delete( $params{base_interp_class} )
|| $class->default_base_interp_class;
# Process plugins and determine real interp_class
#
my @plugins = Mason::PluginManager->process_top_plugin_specs($plugin_specs);
my $interp_class =
Mason::PluginManager->apply_plugins_to_class( $base_interp_class, 'Interp', \@plugins );
# Create and return interp
#
die "cannot pass mason_root_class directly"
if exists( $params{mason_root_class} );
return $interp_class->new(
mason_root_class => $class,
plugins => \@plugins,
%params
);
}
method default_base_interp_class ($class:) {
my @candidates =
map { join( '::', $_, 'Interp' ) } ( uniq( $class, 'Mason' ) );
my ($base_class) = grep { can_load($_) } @candidates
or die sprintf( "cannot load %s for interp", join( ', ', @candidates ) );
return $base_class;
}
1;
__END__
=pod
=head1 NAME
Mason - Powerful, high-performance templating for the web and beyond
=head1 SYNOPSIS
foo.mc:
% my $name = "Mason";
Hello world! Welcome to <% $name %>.
#!/usr/local/bin/perl
use Mason;
my $mason = Mason->new(comp_root => '...');
print $mason->run('/foo')->output;
=head1 DESCRIPTION
Mason is a powerful Perl-based templating system, designed to generate dynamic
content of all kinds.
Unlike many templating systems, Mason does not attempt to invent an alternate,
"easier" syntax for templates. It provides a set of syntax and features
specific to template creation, but underneath it is still clearly and proudly
recognizable as Perl.
Mason is most often used for generating web pages. It has a companion web
framework, L<Poet|Poet>, designed to take maximum advantage of its routing and
content generation features. It can also be used as the templating layer for
web frameworks such as L<Catalyst|Catalyst::View::Mason2> and
L<Dancer|Dancer::Template::Mason2>.
All documentation is indexed at L<Mason::Manual>.
The previous major version of Mason (1.x) is available under the name
L<HTML::Mason>.
=head1 SUPPORT
The mailing list is C<mason-users@lists.sourceforge.net>. You must be
subscribed to send a message. To subscribe, visit
L<https://lists.sourceforge.net/lists/listinfo/mason-users>.
You can also visit us at C<#mason> on L<irc://irc.perl.org/#mason>.
Bugs and feature requests will be tracked at RT:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mason
bug-mason@rt.cpan.org
The latest source code can be browsed and fetched at:
http://github.com/jonswar/perl-mason
git clone git://github.com/jonswar/perl-mason.git
The official Mason website is L<http://www.masonhq.com/>, however it contains
mostly information about L<Mason 1|HTML::Mason>. We're not sure what the future
of the website will be wrt Mason 2.
=head1 ACKNOWLEDGEMENTS
Thanks to Stevan Little and the L<Moose> team for the awesomeness of Moose,
which motivated me to create a second version of Mason years after I thought I
was done.
Thanks to Tatsuhiko Miyagawa and the L<PSGI/Plack|http://plackperl.org/> team,
who freed me from ever worrying about server backends again.
=head1 SEE ALSO
L<HTML::Mason>
=head1 AUTHOR
Jonathan Swartz <swartz@pobox.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Jonathan Swartz.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|