This file is indexed.

/usr/share/perl5/Mason/Manual/Intro.pod is in libmason-perl 2.19-2.

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
__END__
=pod

=head1 NAME

Mason::Manual::Intro - Getting started with Mason

=head1 DESCRIPTION

A few quick examples to get your feet wet with Mason.  See
L<Mason::Manual::Setup> for how to use Mason to generate web sites.

=head1 EXAMPLE 1

=head2 Hello world (from command-line)

After installing Mason, you should have a C<mason> command in your installation
path (e.g. C</usr/local/bin>). Try this:

    % mason
    Hello! The local time is <% scalar(localtime) %>.
    ^D

(where '^D' means ctrl-D or EOF). You should see something like

    Hello! The local time is Wed Mar  2 17:11:54 2011.

The C<mason> command reads in a Mason I<component> (template), runs it, and
prints the result to standard output. Notice that the tag

    <% scalar(localtime) %>

was replaced with the value of its expression. This is called a I<substitution
tag> and is a central piece of Mason syntax.

=head1 EXAMPLE 2

=head2 Email generator (from script)

The command line is good for trying quick things, but eventually you're going
to want to put your Mason components in files.

In a test directory, create a directory C<comps> and create a file C<email.mc>
with the following:

    <%class>
    has 'amount';
    has 'name';
    </%class>

    Dear <% $.name %>,

        We are pleased to inform you that you have won $<% sprintf("%.2f", $.amount) %>!

    Sincerely,
    The Lottery Commission

    <%init>
    die "amount must be a positive value!" unless $.amount > 0;
    </%init>

In addition to the substitution tag we've seen before, we declare two
I<attributes>, C<amount> and C<name>, to be passed into the component; and we
declare a piece of initialization code to validate the amount.

In the same test directory, create a script C<test.pl> with the following:

     1  #!/usr/local/bin/perl
     2  use Mason;
     3  my $interp = Mason->new(comp_root => 'comps', data_dir => 'data');
     4  print $interp->run('/email', name => 'Joe', amount => '1500')->output;

Line 3 creates a I<Mason interpreter>, the main Mason object. It specifies two
parameters: a I<component root>, indicating the directory hierarchy where your
components will live; and a I<data directory>, which Mason will use for
internal purposes such as class generation and caching.

Line 4 runs the template - notice that the C<.mc> extension is added
automatically - passing values for the C<name> and C<amount> attributes.

Run C<test.pl>, and you should see

    Dear Joe,

        We are pleased to inform you that you have won $1500.00!

    Sincerely,
    The Lottery Commission

=head1 SEE ALSO

L<Mason::Manual::Tutorial>, L<Mason::Manual>

=head1 AUTHOR

Jonathan Swartz <swartz@pobox.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2011 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