Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium...
-
Upload
cori-mcdowell -
Category
Documents
-
view
212 -
download
0
Transcript of Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium...
![Page 1: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/1.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 2: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/2.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Web Development with Perl
Coast Open Source SoftwareTechnology (COSST) Symposium
October 18, 2003
Eric HammondDirector of Technology
Rent.com
![Page 3: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/3.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 4: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/4.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
This Talk
Perl UsageComplete Web ExampleExperience/Case Study
Web ArchitectureIntroduction to Perl
Survey of CPANResources
![Page 5: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/5.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Sites Built With Perl
TicketMaster
IMDb
WebbyAwards
AvantGo
Salon
eToys
ValueClick
TechWeb
Amazon
Slashdot
Sites I helped build:
Rent.com
Stamps.com
Citysearch
notlong.com
thousands/millions more...
![Page 6: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/6.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Netcraft mod_perl Survey
![Page 7: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/7.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Netcraft mod_perl Survey, Cont'd
According to Netcraft, 20% of web sites on the Internet say they are built with mod_perl, but...
Not all sites that are built with a module use it
Not all sites that use a module make the fact public
Furthermore, it is possible to build a site with Perl without even using mod_perl
Conclusion: We have no idea how many web sites are built with Perl
...but it seems to be popular and growing
![Page 8: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/8.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Why Use Perl?
Exceptional power, functionality, stability, performance, support
Many great success stories from big names
Good programmers matter more than the language or the platform, but...
Perl gives good programmers an edge
![Page 9: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/9.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
The Perl Language
The Perl language:
Very fun, very high level language
Easy to learn the basics
Gradually pick up more advanced techniques
Power is there as you need it
There's More Than One Way To Do It (TMTOWTDI)
Basics get the job done
Advanced techniques improve speed and quality
...far beyond most other languages
![Page 10: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/10.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 11: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/11.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Complete Web Example
reallyshort.com
![Page 12: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/12.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
reallyshort.com
Reallyshort.com requirements specification:
User enters long URL => Site generates short URL
Users going to short URL are redirected to long URL
Built using:
Linux, Apache, mod_perl, Mason, Perl, MySQL
Time to develop: 20 minutes
...including domain name registration
![Page 13: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/13.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
MySQL schema
Set up database, user, and table with two columns:
01 CREATE DATABASE reallyshort;02 USE reallyshort;
03 GRANT DELETE, INSERT, SELECT, UPDATE04 ON reallyshort.* TO reallyshort@localhost05 IDENTIFIED BY 'password';
06 CREATE TABLE reallyshort.link (07 link_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,08 long_url TEXT NOT NULL09 );
![Page 14: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/14.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
ReallyShort.pm
Create class interface to database table.
01 use strict;02 package ReallyShort;
03 use base 'Class::DBI::mysql';
04 ReallyShort->set_db('Main', 05 'DBI:mysql:reallyshort',06 'reallyshort', 07 'password');
08 ReallyShort->set_up_table('link');09 1;
![Page 15: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/15.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Command Line
Program to shorten URLs from the command line:reallyshort 'http://www.google.com/search?q=shorten+urls'
01 #!/usr/bin/perl -wT02 use strict;03 use ReallyShort;04 my $long_url = shift;05 my $reallyshort = ReallyShort->create({ long_url => $long_url });06 my $link_id = $reallyshort->link_id;07 my $short_url = "http://reallyshort.com/$link_id";08 print “ReallyShort URL is: $short_url\n”;
![Page 16: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/16.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Mason Code (1/2)
01..03 <%args> $long_url => undef </%args>04 <%init>05 use ReallyShort;06 my $link_id = $m->dhandler_arg;07 if ( $link_id ) {08 if ( my ($reallyshort) = ReallyShort->search({ link_id => $link_id }) ) {09 $r->cgi_header_out('Location' => $reallyshort->long_url);10 return REDIRECT;11 }12 }13 my $short_url;14 if ( $long_url ) {15 my $reallyshort = ReallyShort->create({ long_url => $long_url });16 $short_url = 'http://reallyshort.com/' . $reallyshort->link_id;17 }18 </%init>
![Page 17: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/17.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Mason Code (2/2)
19 <html><head><title>ReallyShort.com</title>20 <link rel="stylesheet" href="/css/site.css" type="text/css" />21 </head><body>22 % if ( $short_url ) {23 <p>24 The ReallyShort URL: <a href="<% $short_url %>"><% $short_url %></a>25 <p>26 will redirect to: <% $long_url %>27 <p>28 <a href="/">Another</a>29 % } else {30 <form>31 Long URL: <input name="long_url" size="50">32 <input type="submit" value="Make ReallyShort"">33 </form>34 % }35 </body></html>
![Page 18: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/18.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
/css/site.css
01 body {02 background-color: #336699;03 color: #FFFFFF;04 font-family: Helvetica, Verdana, Arial, sans-serif;05 font-size: 18pt;06 margin: 100px;07 }08 a {09 color: #FFFFFF;10 font-family: Helvetica, Verdana, Arial, sans-serif;11 font-size: 18pt;12 }
![Page 19: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/19.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Main Page: Enter Long URL
![Page 20: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/20.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Submit Page: Show Short URL
![Page 21: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/21.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
reallyshort.com/28 Sends You To...
![Page 22: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/22.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 23: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/23.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Experience
Developing High VolumeCommercial Web Sites
![Page 24: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/24.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
High Volume, Commercial Sites
Millions of unique visitors per month
Tens to hundreds of thousands of page views per hour
99.9+% uptime requirement
Sites are critical to the:
success of the business
image of the business
valuation of the business
Many, many millions of dollars riding on a web site
![Page 25: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/25.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Planning
Plan for growth
Plan for peak usage
Peak hour can be 5-20+ times the average hour in a day
Peak minute can be hundreds of times the average
Plan for hardware failure
...during peak usage
Remove single points of failures
![Page 26: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/26.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Architecture
Load balancer in front
Web servers:
Multiple (redundant)
Low cost, commodity boxes
It doesn't matter if some fail
Database servers:
Expensive (redundant)
Failover or cluster
![Page 27: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/27.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Development Process
Individual web sites for each developer
On personal workstation
Fast change, test, debug cycle
Developers do not interfere with each other
Central source repository and revision control
Official QA platform and procedures
Lots of automated QA
One button push to production when QA approves
![Page 28: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/28.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Case Study
Replace technology of an existing dot com
New team hired to convert to open source software
Goals:
Stability
Performance
Scalability
Uptime
Security
![Page 29: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/29.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Legacy Site
Techology:
IIS, ASP, Java running on NT
Oracle on Solaris
Problems:
Capacity
Performance
Uptime
Stability
![Page 30: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/30.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
New Site
Technology
Linux, Apache, mod_perl, Perl, Mason
Oracle on Solaris (not replaced)
Team size:
3 engineers, 1 dba
Time to build new site:
3 months (from date of hire)
![Page 31: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/31.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Results
Capacity / Scalability
Same hardware scaled to many times the traffic
Performance
Good response even under high load
High availability
Downtime practically eliminated
Security
Not affected by prevalent Windows viruses
![Page 32: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/32.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Growth
![Page 33: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/33.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Cost Savings
Reduced hardware costs
More performance from cheaper hardware
Open source software
No initial cost
Reduced support costs
Reduced team size by more than 50%
Reduced maintenance => More developer resources
More new projects could be completed faster
![Page 34: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/34.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Perl
Critical part of achieving these goals
Fast development
Efficient programming
Powerfully expressive
Eliminates many types of bugs
Large existing code base to draw on
![Page 35: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/35.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
(Disclaimer)
Not trying to say:
Nobody can build great web services on Windows
Open source is always better than commercial
Just sharing personal experience which is on the open source side
I am trying to say:
Open source works
...very well
...for very serious applications
![Page 36: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/36.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Challenges
Case study had some interesting challenges...
Requirements:
Change technology
No change to functionality or design
No downtime during development and launch
Seamless, live transition
![Page 37: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/37.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Transition Plan
Legacy support for:
Host names
URLs (even “/filename.asp”)
Query string parameters
Form parameters
Cookies
Database
Backout procedures created
...but not needed
![Page 38: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/38.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Transition Results
Users did not know the technology changed
...even when it happened during their visit
Clicks from old site to new site worked
Users stayed logged in
All data preserved
No interruption of service
![Page 39: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/39.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 40: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/40.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Software Architecture
Developing Web Applications With Perl
![Page 41: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/41.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Compilation Phase
Java, C#, C++ are compiled and run separately
Perl is compiled on the fly
Simplifies development cycle
Adds a small startup cost
Increases performance of running code
Makes all source code available (has pros and cons)
![Page 42: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/42.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Web Architecture
Options for dynamic output generation include:
CGI
FastCGI
mod_perl
Apache::Registry
...
![Page 43: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/43.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CGI
A common way to get introduced to Perl
Pros
Easy to get started
Web server independent
Operating system independent
Cons
Web server forks a new process to handle every request
CGI program must be compiled on every request
Not as powerful as mod_perl
![Page 44: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/44.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
FastCGI
Web server communicates over network sockets to FastCGI server which runs Perl code
Pros
Web server independent
Perl code compiled once at startup
Cons
Few people use it
mod_perl is more advanced and better supported
![Page 45: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/45.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
mod_perl
Best option for high performance, high volume
Pros
Perl code compiled once at startup
Perl code lives in same process space as Apache server
Powerful hooks into Apache request and response process
Cons
Only available with Apache
More to learn to get started
Not offered by cheap web hosting services
![Page 46: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/46.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Apache::Registry
An way to upgrade CGI programs to get benefits of mod_perl. (Don't start fresh with this.)
Pros
Runs under mod_perl
Perl code compiled once at startup
Mostly compatible with CGI interface
Cons
May not have access to all of the mod_perl features
Global and uninitialized variables may cause problems
![Page 47: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/47.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Which Apache?
Apache 2.x available and stable
However, mod_perl 2 not yet completed
If you are developing with Perl, stick with the tried and true (and still very supported) Apache 1.x
Latest release Apache 1.3.28
![Page 48: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/48.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Which Perl?
Latest release of Perl (three weeks ago) is 5.8.1
Two year old 5.6.1 is still very usable
![Page 49: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/49.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Page Generation
Lots of options including:
Mason (aka HTML::Mason)
Template Toolkit
EmbPerl
Apache::ASP
AxKit
HTML::Template
...
See Resources for article offering detailed comparison
![Page 50: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/50.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Mason
Allows Perl and HTML to be intermixed
Supports modular component architecture (with OO)
Pre-compiling of components for performance
Caching (of HTML components and of data)
Templates, filters
Designed for large volume, commercial web sites
![Page 51: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/51.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Mason Example
% foreach $item ( @cart_items ) {<p>name: <% $item{name} %> <br/>price: <% $item{price} %> <br/>% }
![Page 52: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/52.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Template Toolkit
Used by big sites including Slashdot and (late) eToys
Pre-compiling of components for performance
Back end programming done in Perl
Forces separation of Perl code and user interface (HTML)
Good for separate HTML coders and Perl coders
Nice, clean template language
![Page 53: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/53.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Template Toolkit Example
[% FOREACH item = cart.items %]<p>name: [% item.name %] <br/>price: [% item.price %] <br/>[% END %]
![Page 54: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/54.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Advanced Issues
Likely order of bottlenecks for high volume server:
Database
Memory (!)
Network
CPU
![Page 55: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/55.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Memory Issues
Perl is memory hungry
With mod_perl, each Apache process (child) contains all the Perl code and data
Memory stays in use while feeding the generated page to the browser
...even if Perl generated the page quickly
![Page 56: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/56.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Memory Answers
Memory is cheap (relative to developer time). Buy more!
Take advantage of shared memory (Unix/Linux):
Load all of your Perl code during Apache initialization
Pre-cache data during Apache initialization
Use a split-proxy configuration
![Page 57: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/57.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 58: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/58.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Perl
(Very Brief)Introduction to Perl
![Page 59: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/59.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
My First Perl Program
A simple (but complete) Perl program:
print “Hello, Orange County!\n”;
![Page 60: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/60.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Variables
Variable types:
$scalar
String
Number (integer, floating point)
Reference (to scalar, array, hash, or subroutine)
@array (ordered list of scalars)
$array[$index] = $value
%hash (unordered set mapping scalar key to scalar value)
$hash{$key} = $value
![Page 61: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/61.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Subroutines
sub triple { my $number = shift; return $number * 3;}
sub trim { my $string = shift; $string =~ s/^\s+//; $string =~ s/\s+$//; return $string;}
print “Enter Name: ”;my $name = <>;
print “Enter Income: ”;my $income = <>;
print trim($name), “ should be earning ”, triple($income), “.\n”;
![Page 62: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/62.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
More Features
Available if you desire:
Object oriented programming
Closures
Delegation
Tie
Operator overloading
Parser manipulation
Exception handing
Persistence
Taint checking
C API
Integration with other languages
Embedding
Extending
On-the-fly definition of missing methods
![Page 63: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/63.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
One Liners
Simple one liner:perl -pi.bak -e 's/Perl/Python/g' *.txt
Replaces all instances of “Perl” with “Python” in all .txt files in the current directory
Appends “.bak” extension to original versions of the files in case you didn't like the results and wanted to revert
![Page 64: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/64.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Regular Expressions
Perl regular expression features borrowed by Java, C#, and other languages
Sample regular expression to match an IP address:\d{1,3} ( \. \d{1,3} ){3}
1-3 digits followed by 3 more groups of 1-3 digits each preceded by a period
Sample usage:if ( ! $input =~ /^\d{1,3}(\.\d{1,3}){3}$/ ) {
die “Sorry, $input is not an IP address\n”; }
![Page 65: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/65.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Good Advice
When writing anything longer than one line, always:
Use the -w command line option
Put this line at the top of your program and packages:use strict;
Consider using the -T command line option
By default, Perl is very lax and permissive. Very.
The “use strict” and -w options are critical for catching mistakes like misspelled variables
The -T adds a unique level of security
![Page 66: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/66.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
(-T) Taint Checking
Problem:
User input cannot be trusted
...a leading cause of web site attacks
Perl's Solution:
All user input is marked “tainted”
Data touched by tainted data is itself tainted
Tainted data not allowed to be used in unsafe manner
Data can be explicitly checked and cleaned
![Page 67: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/67.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Taint Checking
Java security model is for untrusted code
Good for browser side
Perl tracks and manages untrusted data
Good for server side
![Page 68: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/68.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN
Comprehensive Perl Archive Network
![Page 69: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/69.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN
Comprehensive:
5,348 modules
3,160 authors
2 GB of source code, ports, extensions, scripts, and documentation
Perl: And is portable across operating systems
Archive: Freely accessible; Online since 1995
Network: Replicated on 229 machines around the world. Pick one (or more) that are close to you.
![Page 70: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/70.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
CGI – CGI swiss army knife
DBI – Vendor independent database interface
Class::DBI – Easy object persistence with database
HTML::Mason – Templating, web site building
Template::Toolkit – Templating, web site building
LWP – Web client programming
Apache::Session – Session management for mod_perl
XML::Simple – XML interface
![Page 71: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/71.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Real::Encode – Interface to Progressive Network's RealAudio
Config::IniFiles – Read/write Windows INI files
Memoize – Automatically cache results of functions
Storable – Persistent data structure mechanism
Statistics::ChiSquare – Chi Square test
PHP::Include – Include PHP files from Perl
GnuPG – Interface to GPG en/decryption
![Page 72: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/72.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
GD::Graph – Create charts and graphs
Email::Find – Find RFC822 email addresses in text
DFA::Kleene – Kleene's algorithm for Discrete Finite Automata
Class::Singleton – Implement the singleton pattern
Net::IRC – Interface to IRC servers
SOAP – SOAP implementation
Business::CreditCard – CC number check digit test
![Page 73: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/73.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Date::Chinese – Calculations in the Chinese calendar
Net::LDAP – Interface to LDAP servers
Graph::Kruskal – Kruskal algorithm for minimal spanning trees
Festival::Client – Interface to open source voice synthesizer
Tie::File – Tie array to lines of a file
Date::Tolkien::Shire - Hobbit calendar
![Page 74: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/74.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Math::Bezier – Solution of Bezier curves
Math::BigInt – Arbitrary size integer math package
Geo::WeatherNOAA – Current weather forecast
Roman – Convert Roman numbers to/from Arabic
ControlX10::CM10 – Control X10 modules (home automation)
AI::Fuzzy – Extensions for Fuzzy Logic
AI::NeuralNet – Back-prop neural net
![Page 75: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/75.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Time::Zone – Timezone info and translation
Benchmark – Easy way to time code fragments
Devel::DProf – Execution profiler
Java: Perl front-end for JVM communication
JavaScript – Allows JavaScript execution within Perl
Math::Fleximal – Arithmetic in any base
Math::Fourier – Fast Fourier Transforms
Math::Matrix – Matrix arithmetic
![Page 76: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/76.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Crypt::Blowfish - Perl Blowfish encryption module
Sub::Curry – Module to curry functions
Test::Simple – Easy way to start writing unit tests
VCS::PVCS – Interface to Intersolve's PVCS
Log::Dispatch – Log messages to multiple outputs
File::Find – Like Unix “find” command
OpenGL – Interface to OpenGL
ClearCase – ClearCase interface
![Page 77: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/77.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Mail::Internet – RFC 822 address manipulation
Tcl – Complete access to Tcl
Mail::Audit – Construct email filters
BarCode::UPS – Produce PostScript UPC barcodes
Net::POP3 – Interface to POP3 email servers
Net::SMS – Send wireless SMS messages
Net::DNS – Interface to DNS servers
Net::FTP – Interface to FTP servers
![Page 78: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/78.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: Sample Modules
Audio::MPEG – En/decode MP3 audio
Python – Interface Python API for embedded Python
Mail::SpamAssassin – Identify spam mail
Astro::SunTime – Calculate sun rise/set times
CPAN – Interface to CPAN
And 5,284 more modules...
![Page 79: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/79.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: DBI/DBD
DBI/DBD – Database Interface, plugins include:
MySQL
PostgreSQL
Oracle
Sybase
Informix
Illustra
ODBC
MS SQLServer
Excel
CSV files
DB2
InterBase
Ingres
Qbase
PrimeBase
![Page 80: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/80.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
CPAN: DBI/DBD
DBI/DBD continued...
Solid
Sprite
SQLFLEX
Unify
Msql
DtF/SQL (Max OS edition)
Altera SQL Server
Empress RDBMS
Adaptive Server Anywhere
Xbase
...
![Page 81: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/81.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Where is CPAN?
www.cpan.org [29] - Official top level web site
search.cpan.org [31] - Find what you need
CPAN.pm – The easiest way to get what you need(This is a Perl module, not a web site)
[29] means go to http://reallyshort.com/29
![Page 82: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/82.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Using CPAN
Here's how to use CPAN.pm to install the Date::Tolkien::Shire module:
perl -MCPAN -e 'install Date::Tolkien::Shire'
Prompts for configuration the first time you use CPAN.
Use the module you just installed:perl -MDate::Tolkien::Shire -e \'print Date::Tolkien::Shire->new(time)-
>as_string'
Output (assuming today is October 18, 2003):Hevensday 26 Winterfilth 7467
![Page 83: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/83.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 84: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/84.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources
Getting More Information
![Page 85: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/85.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Books
Learning Perl (3rd edition) by Randal Schwartz, Tom Phoenix
Learning Perl Objects, References & Modules by Randal Schwartz, Tom Phoenix
Programming Perl (3rd edition) by Larry Wall, Tom Christiansen, Jon Orwant
Writing Apache Modules with Perl and C by Lincoln Stein, Doug MacEachern
![Page 86: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/86.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: More Books
Embedding Perl in HTML with Mason by Dave Rolsky, Ken WilliamsOnline: www.masonbook.com [32]
Perl Template Toolkit (release date Nov 15, 2003) by Darren Chamberlain, Dave Cross, Andy Wardley
Programming the Perl DBIby Alligator Descartes, Tim Bunce
Object Oriented Perl by Damian Conway
![Page 87: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/87.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Even More Books
Perl Cookbook (2nd edition)by Tom Christiansen, Nathan Torkington
Mastering Regular Expressions (2nd edition) by Jeffrey E. Friedl
Practical mod_perlby Stas Bekman, Eric Cholet
![Page 88: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/88.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Periodicals
The Perl Journalwww.tpj.com [33]
The Linux Journalwww.linuxjournal.com [34]
![Page 89: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/89.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Web
www.perl.com [35] - By O'Reilly & Associates
www.perl.org [36] - By The Perl Foundation
perl.apache.org [39] - Main mod_perl site
www.perlmonks.org [38]- Lots of friendly help from smart and experienced Perl experts
learn.perl.org [40] - Good starting point for learners
jobs.perl.org [41] - Open positions for Perl developers
![Page 90: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/90.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: More Web
www.masonhq.com [42] - Mason
www.template-toolkit.org [43] - Template::Toolkit
www.take23.org [44] – News/resources for mod_perl
![Page 91: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/91.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Web Articles
Building a Large-scale E-commerce Site with Apache and mod_perl, by Perrin Harkins and Bill Hilf http://perl.apache.org/docs/tutorials/apps/scale_etoys/etoys.html [45]
Choosing a Templating System, by Perrin Harkins http://perl.apache.org/features/tmp-cmp.html [46]
Choosing the Right Strategy, by Stas Bekmanhttp://perl.apache.org/docs/1.0/guide/strategy.html [47]
![Page 92: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/92.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: Mailing Lists
Perl mailing list list (over 200):http://lists.cpan.org/ [48]
mod_perl users mailing list:http://perl.apache.org/maillist/modperl.html [49]
Mason users mailing list:http://www.masonhq.com/resources/mailing_lists.html [50]
Template Toolkit mailing list:http://template-toolkit.org/mailman/listinfo/templates [51]
![Page 93: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/93.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
Resources: User Groups
Perl Mongers
oc.pm.org [52] - Orange County Perl Mongers
la.pm.org [53] - Los Angeles Perl Mongers
sandiego.pm.org [54] - San Diego Perl Mongers
Perl Meetup
perl.meetup.com [55] – Make connections in your area
![Page 94: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/94.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
![Page 95: Web Development With Perl Eric Hammond Coast Open Source Software Technology (COSST) Symposium October 18, 2003.](https://reader035.fdocuments.us/reader035/viewer/2022070407/56649e445503460f94b37dd1/html5/thumbnails/95.jpg)
Web Development With PerlEric Hammond
Coast Open Source Software Technology (COSST) SymposiumOctober 18, 2003
This Presentation
Available online:
http://www.anvilon.com/talks/perlweb [56]
Remember: [56] = http://reallyshort.com/56