Perl News

Jon Orwant

Beta versions of Perl 5.005, coordinated by Malcolm Beattie, are available from the CPAN. Send bug reports to

The 1998 O'Reilly Perl Conference (August 17 through 20 in San Jose, California) now has a Call for Papers available at

I've written a Module Installation Guide about how to install modules on various platforms. It's available on the CPAN as CPAN/modules/INSTALL.html.

The Call For Votes for a new Usenet newsgroup, comp.lang.perl.moderated, is being announced as this issue goes to press. Votes are being collected on whether or not to create the group. For details, see the CFV announcement (which contains the proposed charter) in news.announce.newgroups and the discussion in news.groups and on comp.lang.perl.misc.

Four more Perl User Groups have formed: the Boston, D.C., L.A., and St. Louis Perl Mongers. Visit their web pages at

ActiveState will soon have a beta version of Visual Perl, an IDE (Integrated Development Environment) for Perl. The ActiveState Perl Debugger is available for download now from their Web site at They're also working on PerlCOM (no relation to, which will allow you to create COM objects in Perl.

Nick Ing-Simmons has made an alpha release of a port of Tk 8.0 to Perl (both Unix and the core distribution of Win32). This newest version of Perl/Tk can be downloaded as Tk800.latest_release. Steve Sherwood released xisofs, which uses Perl/Tk to create and write CD-ROM filesystems.

The PDL porters released PDL 1.99, the first beta of PDL (Perl Data Language) 2.0, the package of choice for number crunching.

An Emacs module, written by John Tobey, lets you embed Perl in the Emacs text editor.

Graham Barr's builtin module provides several subroutines that arguably belong in the Perl core: blessed(), dualvar(), max(), min(), maxstr(), minstr(), reduce(), sum(), clock().

The Net::IRC module, maintained by Dennis Taylor, is an interface to the IRC (Internet Relay Chat) protocol.

The Business::UPS module, by Mark Solomon, calculates shipping costs and delivery information for United Parcel Service shipments.

Gimp is a public-domain graphics program similar to Adobe PhotoShop. Marc Lehmann released a module that provides access to Gimp plug-ins, extensions, and everything else.

Ken Fox released X11::Lib, X11::Toolkit, and X11::Motif modules, which let you access the X Window System directly (instead of via higher-level libraries like Sx, Qt, or Perl/Tk).

Scott VanRavenswaay's perl-vgalib is a Perl version of svgalib, which lets your Perl program access the SVGA graphics library. Martien Verbruggen's GIFgraph module uses the GD module to generate graphs.

The MultiTail module, written by Stephen Miano, lets you examine (and match) the ends of growing files. Matija Grabnar released a similar module, File::Tail.

Joseph Hall released Sort::Fields, which sorts lines by alphabetic or numeric fields.

Chris Nandor released D'oh, a module that redirects STDERR and STDOUT to files; Mac::Apps::MacPGP, an interface to MacPGP 2.6.3; and Mac::Apps::Launch, which lets you launch Mac applications from Perl. David Turley maintains a searchable index of the MacPerl mailing list at

Joshua Pritikin released Manifest, creates file manifests: lists of files in a directory with checksums and differences from the last manifest. Joshua also released Tree::Fat, which implements fat tree data structures.

Joe Marzot released a module providing an interface to the UCD SNMP (Simple Network Management Protocol) library.

Stephen Zander's Net::Interface module lets you access Unix network interfaces.

The Rcs module, by Craig Freter, is a front end to Revision Control System utilities.

Wayne Davison released a DBZ_File module that allows you to read, write, and create DBZ databases.

The Schedule::At module, by Jose Rodriguez Garrido, is an OS-independent interface to the Unix at command, which runs a program at a particular time.

Earl Hood's Proc::Daemon module turns your Perl programs into a Unix daemon process. The Net::Daemon module, by Jochen Wiedmann, is a base class for portable TCP/IP servers.

Ulrich Pfeifer released a new version of Math::ematica, an interface to the MathLink library of Mathematica, and CGI::Screen, which helps you create multi-screen CGI scripts.

HTML::TableLayout, by Stephen Farrell, is a widget set for building graphical Web applications.

The CGI::LogCarp module, by Michael King, provides for independent output streams (error, logging, and debugging) in httpd-style log files.

You can now load SGML, HTML, and XML files with SGML::SPGrove, by Ken MacLeod. XML is the eXtensible Markup Language - kind of a combination of SGML and HTML.

Antonio Rosella developed a library for accessing PDF (Portable Document Format) files.

Brian Spolarich released Db::Documentum, an interface to the Documentum document management system.

Tye McQueen developed Tie::Registry, a Perl module that lets you tie() a hash to a Windows Registry. It works with the core distribution of Perl for Win32, but not the ActiveState port.

A new version of the SHA (Secure Hash Algorithm) module has been released by Uwe Hollerbach.

David Muir Sharnoff uploaded String::CRC, which generates cyclic redundancy checks for strings.

Russ Allbery released News::Gateway, which facilitates mail to news gateways and moderation. It uses Andrew Gierth's News::Article module, which lets you create and post news articles from Perl programs. Greg Bacon released a new version of News::Scan, which retrieves articles and generates newsgroup statistics.

The FAQ::Omatic system, by Jon Howell, automates FAQ maintenance, allowing others to help keep your FAQ up-to-date via the Web.

Etienne Grossmann's Lingua::PT::Conjugate provides functions that conjugate Portuguese verbs, and for training you to do the same.

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 has instructions on how to build modules on all major operating systems.

You can also use Andreas König'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.

Like Mike Stok's Text::Soundex module, Michael Schwern's Text::Metaphone converts words to a lossy phonetic representation. Tkst::Mtfn, by Mxl Skrn, knfrts rts t a fntk rprsnt.

The TacacsPlus module, by Mike Shoyher, is a Perl extension for authentication on tacacs+ servers.

Two more SGI modules have been uploaded: Jesse Glick's SGI::FAM, which lets you monitor filesystem activity, and Jail, Just Another Image Library.

Mark-Jason Dominus uploaded a Memoize module, which caches function-argument pairs: if you call function(4) twice, the second invocation returns immediately. A proof that regex matching is NP-complete can be found on his web site at

Advance notice: the 3rd Annual Obfuscated Perl Contest will be formally announced next issue. Categories are likely to be 'Most Powerful', 'Most Creative', and 'Best "The Perl Journal"'. Information will be available on the TPJ Web site.

New modules should be cleared with the mailing list before uploading to the CPAN. We don't review the code so much as ensure that new modules have appropriate names. Information about modules and other Perl news should be sent to

Too many CPAN modules are by developers for developers. We need more modules like Business::UPS, which probably took very little time to write, yet appeals to a lot of people who wouldn't have known about Perl otherwise.

_ _END_ _

Jon Orwant is the editor and publisher of The Perl Journal and an IBM fellow at the MIT Media Lab.