Web, Graphics and Perl/Tk Programming: Best of the Perl Journal


In its first five years of existence, The Perl Journal (TPJ) became the voice of the Perl community. Every serious Perl programmer subscribed to it, and every notable Perl guru jumped at the opportunity to write for it. TPJ explained critical Perl topics and demonstrated Perl's utility for fields as diverse as astronomy, biology, economics, AI, and games. Back issues were hoarded, or swapped like trading cards. No longer in print format, The Perl Journal remains a proud and timeless achievement of Perl during one...

See more details below
Paperback (1ST)
BN.com price
(Save 10%)$39.95 List Price
Other sellers (Paperback)
  • All (14) from $12.27   
  • New (6) from $17.88   
  • Used (8) from $12.27   
Web, Graphics & Perl/Tk Programming: Best of the Perl Journal

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
BN.com price
(Save 43%)$31.95 List Price


In its first five years of existence, The Perl Journal (TPJ) became the voice of the Perl community. Every serious Perl programmer subscribed to it, and every notable Perl guru jumped at the opportunity to write for it. TPJ explained critical Perl topics and demonstrated Perl's utility for fields as diverse as astronomy, biology, economics, AI, and games. Back issues were hoarded, or swapped like trading cards. No longer in print format, The Perl Journal remains a proud and timeless achievement of Perl during one of its most exciting periods of development.

Web, Graphics & Perl/Tk is the second volume of The Best of the Perl Journal, compiled and re-edited by the original editor and publisher of The Perl Journal, Jon Orwant. In this series, we've taken the very best (and still relevant) articles published in TPJ over its five years of publication and immortalized them into three volumes.

The forty articles included in this volume are simply some of the best Perl articles ever written on the subjects of graphics, the Web, and Perl/Tk, by some of the best Perl authors and coders.

Much of Perl's success is due to its capabilities for developing web sites; the Web section covers popular topics such as CGI programs, mod_perl, spidering, HTML parsing, security, and content management. The Graphics section is a grab bag of techniques, ranging from simple graph generation to ray tracing and real-time video digitizing. The Perl/Tk section shows you how to use the popular Perl/Tk toolkit for developing graphical applications that work on both Unix/Linux and Windows without a single change.

Written by twenty-three of the most prominent and prolific members of the closely-knit Perl community, including Lincoln Stein, Mark-Jason Dominus, Alligator Descartes, and Dan Brian, this anthology does what no other book can, giving unique insight into the real-life applications and powerful techniques made possible by Perl.

This volume covers topics not covered in O'Reilly's other Perl books. Half of the articles in this volume deal with essential issues faced by Web developers using Perl.

Read More Show Less

Product Details

  • ISBN-13: 9780596003111
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 3/1/2003
  • Edition description: 1ST
  • Edition number: 1
  • Pages: 448
  • Product dimensions: 7.00 (w) x 9.19 (h) x 1.05 (d)

Meet the Author

Jon Orwant founded The Perl Journal and received the White Camel lifetime achievement award for contributions to Perl in 2004. He's Engineering Manager at Google, where he leads Patent Search, visualizations, and digital humanities teams. For most of his tenure at Google, Jon worked on Book Search, and he developed the widely used Google Books Ngram Viewer. Prior to Google, he was CTO of O'Reilly, Director of Research at France Telecom, and a Lecturer at MIT. Orwant received his doctorate from MIT's Electronic Publishing Group in 1999.

Read More Show Less

Table of Contents

Finding Perl Resources;
Conventions Used in This Book;
Comments and Questions;
Chapter 1: Introduction;
Part I: Web;
Chapter 2: CGI Programming;
2.1 CGI Programming Without CGI.pm;
2.2 The CGI.pm Module;
Chapter 3: Saving CGI State;
3.1 State in CGI Scripts;
3.2 A Sample State-Maintaining CGI Script;
Chapter 4: Cookies;
4.1 Creating Cookies;
4.2 Retrieving Cookies;
4.3 A Sample Cookie Program;
Chapter 5: mod_perl;
5.1 Transaction Handlers;
5.2 A Typical Content Handler;
5.3 Apache::Registry;
5.4 A Typical Non-Content Handler;
5.5 Getting Fancy: A Stately Script;
5.6 Impaled by the Fork;
5.7 Other mod_perl Features;
Chapter 6: Creating mod_perl Applications;
6.1 So, What Is This mod_perl Thing, Anyhow?;
6.2 Developing with mod_perl;
6.3 Apache::Registry;
6.4 Embperl;
6.5 Writing Your Own Handler;
6.6 Performance;
6.7 Our Sample Application;
6.8 Components;
6.9 DBI and Apache::DBI;
6.10 Apache::AuthDBI;
6.11 Apache::Sandwich;
6.12 Writing the Application Code;
6.13 Putting It All Together;
Chapter 7: Proxying with mod_perl;
7.1 Why Proxy?;
7.2 How the Proxy Protocol Works;
7.3 Identifying Ads;
Chapter 8: Authentication with mod_perl;
8.1 Access Control;
8.2 Authentication;
8.3 Authorization;
8.4 Conclusion;
Chapter 9: Navigation Bars with mod_perl;
9.1 The Configuration File;
9.2 Activating the Navigation Bar;
9.3 Generating the Navigation Bar;
9.4 A Foundation to Build On;
Chapter 10: Scripting the Web with LWP;
Chapter 11: Five Quick Hacks: Downloading web Pages;
11.1 Downloading Currency Exchange Rates;
11.2 Downloading Weather Information;
11.3 Downloading News Stories;
11.4 Completing U.S. Postal Addresses;
11.5 Downloading Stock Quotes;
11.6 Conclusion;
11.7 Afterword;
Chapter 12: Downloading Web Pages Through a Proxy Server;
12.1 Afterword;
Chapter 13: HTML::Parser;
13.1 Getting Started;
13.2 The Identity Parser;
13.3 The HTML Tag Stripper;
13.4 Another Example: HTML Summaries;
13.5 Another Fictional Example;
13.6 Using HTML::Parser Version 3;
13.7 Acknowledgments;
Chapter 14: Scanning HTML;
14.1 HTML::Parser, HTML::TreeBuilder, and HTML::Element;
14.2 Scanning HTML Trees;
14.3 Complex Criteria in Tree Scanning;
14.4 A Case Study: Scanning Yahoo! News;
14.5 Regardez, Duvet!;
Chapter 15: A Web Spider in One Line;
15.1 Callbacks and Closures;
15.2 Cascading Arrows;
15.3 Using Modules with One-Liners;
15.4 The End;
Chapter 16: Webpluck;
16.1 Similar Tools;
16.2 How to Use webpluck;
16.3 How webpluck Works;
16.4 The Dark Side of the Force;
Chapter 17: Torture-Testing Web Servers and CGI Scripts;
17.1 The Code;
17.2 Wrapping Up;
Chapter 18: Securing Your CGI Scripts;
18.1 The Example Script;
18.2 Designing the Script;
18.3 The chat2.pl Library;
18.4 Oops;
18.5 The CGI Script;
18.6 The Rest of the Script;
18.7 Caveats;
Chapter 19: Building Web Sites with Mason;
19.1 What Is Mason?;
19.2 Installation;
19.3 Building a Dynamic Site;
19.4 What Now?;
Chapter 20: Surreal HTML;
20.1 How It Works;
20.2 Prompting the User;
20.3 Fetching the Document;
20.4 Running the Travesty Algorithm;
20.5 Printing the Mangled Document;
Chapter 21: Web Page Tastefulness;
21.1 How It Works;
21.2 The >BASE< Tag;
21.3 For Extra Credit;
Chapter 22: Summarizing Web Pages with HTML::Summary;
22.1 CS-Web: A Search Engine for Canon’s Web Space;
22.2 META Tags;
22.3 Basic Summarization Methods;
22.4 HTML::Summary;
22.5 The Summarization Algorithm;
22.6 Sentence Splitting;
22.7 Conclusion;
22.8 Afterword: Truncating Japanese Text;
Chapter 23: Wireless Surfing with WAP and WML;
23.1 A Quick Look at WAP;
23.2 Enabling WAP on Apache;
23.3 WML Basics;
23.4 WAP Cards;
23.5 Developing WAP Applications;
23.6 CGI::WML;
23.7 A Small File Browser with CGI::WML and mod_perl;
23.8 Generating WML with HTML::Mason;
23.9 A WML Phone Directory with Mason;
23.10 WML with Straight Perl;
23.11 A Remote Control for Home Automation;
23.12 Creating a Personal Portal;
Part II: Graphics;
Chapter 24: Web Plots with Gnuplot;
24.1 Using Gnuplot;
24.2 Parsing Log Files;
24.3 Putting It All Together;
24.4 Simple Things Made Easy;
Chapter 25: GD-Graph3d;
25.1 Using GD-Graph3d;
25.2 What the Future Holds;
25.3 Installing GD;
Chapter 26: GD and L-Systems;
26.1 GD;
26.2 L-Systems;
26.3 Turtles;
26.4 A Turtle Draws a Tree;
26.5 Putting L-Systems to Work;
26.6 Leaves;
26.7 Flowers;
26.8 Bringing It All Together;
26.9 Resources;
Chapter 27: OpenGL;
27.1 Back to Basics;
27.2 Graphical Primitives;
27.3 Drawing on the Screen;
27.4 Introduction to OpenGL;
27.5 OpenGL and Perl;
27.6 Drawing Objects;
27.7 Resources;
27.8 References;
27.9 Acknowledgments;
Chapter 28: Ray Tracing;
28.1 Technique;
28.2 Make It Faster;
28.3 Mathematics;
28.4 The Program;
28.5 The Input;
28.6 The Output;
28.7 Internals;
28.8 Other Directions;
Chapter 29: Perl and the Gimp;
29.1 Using the Gimp;
29.2 Getting the Tools;
29.3 Using the Gimp Module;
29.4 Moving On;
Chapter 30: Glade;
30.1 GTK+/Gnome;
30.2 Perl and GTK+/Gnome;
30.3 Glade;
30.4 Installation;
30.5 Designing an Interface;
30.6 Adding Code;
30.7 Saving and Building the Project;
30.8 Writing the Signal Handler Code;
30.9 Inheritance as a GUI Development Tool;
30.10 Further Exploration;
30.11 More Information;
Chapter 31: Gnome Panel Applets;
31.1 Gnome;
31.2 Program Overview;
31.3 Initialization;
31.4 The Callbacks;
31.5 Conclusion;
31.6 Afterword;
Chapter 32: Capturing Video in Real Time;
32.1 Video::Capture::V4l;
32.2 Part I: Video Capturing;
32.3 Capturing Frames in a Loop;
32.4 Channels, Tuners, and Audio and Picture Settings;
32.5 Magic Constants for Frequencies?;
32.6 Example: Image Sequence Detection;
32.7 Example: Real Time Video Capturing;
32.8 Part II: The Vertical Blanking Interval;
32.9 Standards;
32.10 Decoding VPS;
32.11 The Autotune Script;
32.12 Decoding Videotext;
32.13 References;
Part III: Perl/Tk;
Chapter 33: A Perl/Tk Roadmap;
33.1 Understand the Basics;
33.2 Ignore What You Don’t Need;
Chapter 34: Getting Started with Perl/Tk;
34.1 Perl/Tk Programming;
34.2 A Sample Perl/Tk Program: plop;
34.3 Improving plop;
Chapter 35: Scoreboard: A 15-Minute Perl/Tk Application;
35.1 The Need;
35.2 The Design;
35.3 The Implementation;
Chapter 36: The Mouse Odometer;
36.1 Measuring Distance;
36.2 Menus;
36.3 The ColorEditor Widget;
36.4 Composite Widgets;
Chapter 37: Events;
37.1 Timer Events;
37.2 I/O Events;
37.3 Idle Events;
37.4 Pong;
37.5 Miscellaneous Event Commands;
Chapter 38: The Pack and Grid Geometry Managers;
38.1 A Brief Look at the Packer;
38.2 The Gridder;
Chapter 39: Drawing on a Canvas;
39.1 Our Mower Is Programmable!;
39.2 A Canvas Widget Is the Lawn;
39.3 Defining the Perl Mowing Module;
39.4 Zero Turning Radius, Take One;
39.5 The Canvas Line Item Type;
39.6 Zero Turning Radius, Take Two;
39.7 Rotating Simple Objects in Canvas Space;
39.8 The Canvas Rectangle and Text Item Types;
39.9 The Canvas Arc Item Type;
39.10 Nonzero Turning Radius, Take One;
39.11 Canvas Tags;
39.12 Scaling Canvas Items;
39.13 The Real World Is Uncertain;
Chapter 40: Displaying Databases with the Tree Widget;
40.1 Using Databases from Perl;
40.2 Overview of the tkdb Application;
40.3 Building the Graphical Interface;
40.4 Creating a Tree View of a Database;
40.5 Making Changes to a Database;
40.6 The Tk::Error Subroutine;

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)