Perl News

Chris Nandor



In our top news story tonight, The Perl Institute voted to dissolve March 1 due primarily to the inefficiency of the organization. Following the dissolution, former Institute board member (and ex-publisher of The Perl Journal) Jon Orwant said, "Perl was built on the backs of volunteers, and we've been blessed with hundreds of people who have offered their time, money, expertise, and computational resources. But TPI was so feeble that it couldn't even say 'Thanks for your offer, here's what to do' to the volunteers. An organization so lame needs to be put down, and that's exactly what we've done." Larry Wall, also a former board member, discussed at the March 1 meeting the differences between "top-down" and "bottom-up" development, and he cited the Institute as an attempt at a "top-down" approach, while Perl culture mandates a "bottom-up" approach. The meetings of the final two board meetings of the Institute have been posted online.

Assets from the Institute, which include about $3000, some computer equipment, and the domain name, have all been gifted to Perl Mongers (, and plans to move services to the Perl Mongers servers have already begun. Head Monger brian d foy said that anyone concerned about the state of their TPI project should contact him directly, at

On the topic of changing hands: EarthWeb acquired The Perl Journal in March, and has taken over responsibility for production, advertising, marketing, distribution, order fulfillment, subscription services, design, and the TPJ web site at The new web site features access to TPJ articles with username and password authentication.

On to more practical matters: Two new Perl releases are out, 5.005_03 and 5.004_05. 5.004 is still being maintained for those that aren't upgrading to 5.005 for some reason or another.

Larry Wall was recently featured on the cover of Issue 61 of the Linux Journal. Wall also spoke at LinuxWorld, and his talk Perl, the first postmodern computer language is on his site at

The first yapc (Yet Another Perl Conference) is kicking off right about now: June 24 and 25 at Carnegie Mellon University, featuring a very low cost and lots of good speakers and sessions. Find out more at Paul Hoffman's Perl for Dummies has been updated to a second edition covering perl5.005. O'Reilly has introduced Writing Apache Modules with Perl and C, by Lincoln Stein and Doug MacEachern. The book describes how to extend the Apache web server using C and Perl with mod_perl. Sample chapters are available at

The mod_perl guide is no longer the "mini guide", as it's grown quite a bit.

The Perl XML FAQ has been updated to version 1.1. And The Perl for Win32 FAQ has new maintainers, and the FAQ has been recently updated to include the Perl Package Manager and OLE. perl-win32/perlwin32faq.html

A project to translate the Perl documentation into French can be found at has a new mailing list, perl-announce, where stable versions of Perl will be announced. All releases, including development releases, will continue to be announced in other places, like this right here Perl News column and the Perl News web page and mailing list. Most Perl mailing lists, including those not hosted by, are listed at

Scores of new Perl Mongers groups in the last few months; see for a complete list. Stateside, you can check out Bakersfield CA, Baltimore MD, Boulder CO, Cape Girardeau MO, Cleveland OH, Colorado Springs CO, Davenport IA, Des Moines IA, Fayetteville AR, Gainesville FL, Long Valley NJ, Midlothian VA, Mountain View CA, Naperville IL, Nashville TN, North Attleboro MA, Palm Coast FL, Provo UT, Rolla MO, Santa Clara CA, Santa Maria CA, and Santa Monica CA. In the rest of the world, try Auckland (New Zealand), Bangkok (Thailand), Bogota (Colombia), Bombay (India), Braga (Portugal), Dubai (U.A.E.), Gold Coast (Australia), Johannesburg (South Africa), Karlsruhe (Germany), Copenhagen (Denmark), Kyoto (Japan), Leipzig (Germany), Lund (Sweden), Manila (Philippines), Ottawa (Ontario Canada), Pacos de Ferreira (Portugal), Penang (Malaysia), Pune (India), Rehovot (Israel), Santander (Spain), Semarang (Indonesia), Southampton (England), St. Anna (Sweden), Sundsvall (Sweden), Vienna (Austria), Zagreb (Croatia), and Zurich (Switzerland).

Assurdo, the entity that brought us "the one true programming language" dd-sh, and The Perl Filesystem now bring forth CLC-INTERCAL, an INTERCAL interpreter implemented entirely in Perl. Released on April 1, more information on CLC-INTERCAL can be found at

Wolf Busch released Lisp 1.1, his version of Scheme in Perl. The web page and docs at are in German.

Tom Christiansen started Perl Power Tools: The Unix Reconstruction Project, at The goal is quite simple: to reimplement the classic Unix command set in pure Perl, and to have as much fun as possible doing so. Over 100 commands have at least some stab at them so far, and many of the commands have fairly complete implementations.

Gareth Rees wrote HTML::FromText, which marks up plain text as HTML, converting some characters to HTML entities, and finding URLs and converting them to links. HTML::Summary from Ave Wrigley extracts a summary from an HTML page.

HTML::Validator, by Sami Itkonen, is a Perl module for validating HTML (or SGML/XML) documents. It does this by using nsgmls, which is the core of every validator engine on the web. Documents on the web can also be checked with the help of LWP.CGI::Formalware from Pen and Ron Savage converts an XML file into a suite of CGI forms.

Jochen Wiedman's HTML::EP is another embedded Perl system, similar to ePerl, HTML::Embperl, HTML::Mason, Apache::ASP, and Apache::SSI (did we miss any?). These systems allow embedding of Perl in HTML pages, which are parsed on the server side before sending the pages to the client. HTML::EP emphasizes OO design and code reusability.

CIPP (the CgI Perl Preprocessor), from Joern Reder, provides another HTML embedding language for Perl, and translates CIPP sources to pure Perl. His Apache::CIPP_Handler module registers CIPP sources to Apache and lets Apache execute the CIPP sources on the fly.

Cameron Kaiser's HTTPi is a fast, miniaturized HTTP/0.9, /1.0, and /1.1-compliant web server written in pure Perl and requiring no modules, just the Perl executable, and takes up just 6K. It is in the CPAN authors/id/C/CK/CKAISER/ directory.

DBIx::HTMLView, by Hakan Ardo, is a set of modules to handle relational SQL databases through a DBI interface and create web user interfaces to them. Craig Spannring released DBD::FreeTDS, which talks to SQLServer and Sybase databases directly using the raw TDS protocol, obviating the need for third-party libraries. More information on TDS is available from

SecurID::ACEdb from Dave Carrigan is a Perl interface to Security Dynamics' SecurID ACE Administration Toolkit API to access the token, user and group databases on an ACE server.

Tim Potter has released the NetPacket group of modules, which define a framework for decoding and encoding network packets in pure Perl. It requires external methods, like Potter's Net::Pcap, to generate the packet data. Ethernet (802.3 and 802.2), ARP, ICMP, IGMP, IP, UDP, and TCP have been implemented.

Fabien Tassin released Data::Compare, which compares Perl data structures, and Chart::ThreeD::Pie for creating 3D pie charts. Piotr Klaban's Graphics::Plotter is an interface to libplotter, from the GNU plotutils distribution.

Alistair Cunningham's Gtk::Dialog is a simple and easy to use Perl interface to create dialog boxes using the Gtk toolkit for X. It requires no knowledge of Gtk or advanced Perl features. Complex dialog boxes can be created in just a few lines of code. Gtk::Dialog has built in features for validation of user input.

Tuomas J. Lukka has been working on Graphics::Simple, a basic, device-independent drawing API.

Document::Info from Martin Schwartz determines the file type of Microsoft Office documents. It requires OLE::Storage. Andrew Langmead's Data::MacResFile aids in reading resource fork data from Mac OS files on non-Mac platforms, and is available at Backwards, from Uri Guttman, efficiently reads files backwards. It's at

Mac::OSA::Simple, from yours truly, can now get the compiled form of an OSA script, get the source of a compiled script, or save or load a compiled script.

William R. Ward's Barcode::Code128 is available for working with the CODE 128 encoding scheme.

Paul Sharpe wrote Text::Structured, a class for manipulating fixed-format pages of text.

Devel::Modlist, by Randy J. Ray, lists, after execution, the modules that a program used.

Russ Allbery's PGP::Sign has been updated to support PGP 5.0 and GnuPG (a PGP replacement covered by the GNU GPL). PGP::Sign only creates and checks detached PGP signatures; it does not do general PGP work. Allbery also released Tie::Shadowhash, which creates a "shadow hash" that looks like a regular Perl hash, but behind the scenes queries a whole list of data sources.

Yag (Yet another getopts) from Bob Camp is another module for parsing command-line options. It's highly configurable, and available at

Jeff Pinyan released File::chmod, allowing you to change file permissions with letters instead of numbers (e.g., a+rwx instead of 0777.)

Michal Wallace's GVM (Generic Virtual Machine) lets programmers play with virtual machines. It's in the very early pre-beta maybe-you-can-play-with-it stage, at

Robert Inder announced CAPE (Clips And Perl with Extensions). Clips is a forward-chaining rule-based system which was originally developed by NASA. CAPE combines the full language environments of both Clips and Perl, including the ability to run programs or libraries written in either, or both, within a single application. See CAPE/ for more information.

Steffen Beyer has made some changes to Data::Locations, including a move to XS code. Data::Locations allows "magic insertion points" in data.

Earl Hood's Text::Bind binds Perl structures (scalars, functions, filehandles, objects, and arrays) to specific locations (called "data sites") in text files.

POP (Perl Object Persistence) from Benjamin Holzman stores Perl objects in Sybase databases. Kim Ryan's Lingua::EN::NameParse attempts to break a person's name into meaningful parts (first name, middle name, last name, title).

Dan Urist wrote WWW::Babelfish, an interface to AltaVista's Babelfish translation service at . Urist notes that it is more fun than useful. We believe him, and we like it for that reason. _ _END_ _

The Comprehensive Perl Archive Network (CPAN)

The CPAN is the world's distributed, replicated repository of Perl utilities. Unless noted otherwise, you can find everything in this column on the CPAN. Visit Tom Christiansen's multiplexer to be redirected to a CPAN site near you: You'll be able to find the modules under the author's name, at . Jon Orwant's has instructions on how to build modules on all major operating systems, and CPAN/CPAN.html lists all of the modules and scripts on the CPAN. You can also use Andreas Koenig's CPAN module to automatically install modules. Once you've installed it, perl -MCPAN -e 'install("modulename")' will automatically download, build, and install the module for you. If you'd like to contribute your module to the CPAN, good for you! Read CPAN/modules/04pause.html for details.

Unless otherwise noted, all modules and documentation mentioned here should be available on CPAN, at This column's online companion is the Perl News at . To join the mailing list, sent (semi-) daily with all the latest Perl news, send the message "subscribe daily-news" to If you have any Perl news, including new modules or major module updates, or have any comments or questions about Perl News, please send it to

Chris Nandor ( ) is the first player to be a finalist for both the Norris and Vezina trophies in the same year. See his statistics at