Happy Thanksgiving Holidays,
Today, I am happy to welcome Simon Sweetman (Chubler_XL) to the Moderation Team to help provide us some important coverage from (Down Under) Australia.
Simon is a Senior Analyst Programmer/Developer at Cedar Creek Company in Brisbane, Australia and his LinkedIn... (7 Replies)
Dear All,
I am very pleased to announce that Dave Munro (gull04) is joining the Moderation Team, after being a very valuable member of UNIX.com for 15+ years.
Dave is an IT Consultant with 30 years of experience this year, has worked in many of the industry vertical market segments and has... (6 Replies)
Mason::Manual::Intro(3pm) User Contributed Perl Documentation Mason::Manual::Intro(3pm)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) 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.
perl v5.14.2 2012-05-02 Mason::Manual::Intro(3pm)