Provided by: libmason-perl_2.21-1_all bug

NAME

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

DESCRIPTION

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

EXAMPLE 1

   Hello world (from command-line)
       After installing Mason, you should have a "mason" command in your installation path (e.g.
       "/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 "mason" command reads in a Mason 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 substitution tag and is a
       central piece of Mason syntax.

EXAMPLE 2

   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 "comps" and create a file "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 attributes, "amount"
       and "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 "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 Mason interpreter, the main Mason object. It specifies two parameters: a
       component root, indicating the directory hierarchy where your components will live; and a
       data directory, which Mason will use for internal purposes such as class generation and
       caching.

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

       Run "test.pl", and you should see

           Dear Joe,

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

           Sincerely,
           The Lottery Commission

SEE ALSO

       Mason::Manual::Tutorial, Mason::Manual

AUTHOR

       Jonathan Swartz <swartz@pobox.com>

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.