Perl News

Jon Orwant

Perl 5.005 is no longer in beta. The most recent version is Perl 5.005_02, available on the CPAN.

The O'Reilly Perl Conference 2.0 took place August 1720 in the San Jose Fairmont hotel. It was better attended (over 1200 attendees) and had more material for seasoned Perl programmers than last year. There were three parallel tracks: Applied Perl, User Applications, and Perl and Apache.

There's too much to say about the conference; I recommend Vicki Brown's SunWorld summary at

Larry Wall gave another well-received State of the Onion speech, talking about complexity, natural language, Unicode, and onion rings.

People seemed to like my possibly-annual Perl Quiz Show. The 1998 champions: Graham Barr, Brand Hilton, and Nick Ing-Simmons, representing the Dallas/Fort-Worth Perl Mongers. The questions, answers, and commentary are available at

Tim Bray gave a well-attended talk about XML; more information about the marriage of Perl and XML is available at

Ted Nelson, who coined the term 'hypertext' back in 1965, surprised the Developer's Workshop by demoing Zigzag, his multidimensional hyperstructure construction kit written in Perl.

Head Perl Mongers brian d foy, Adam Turoff, and David Adler did a great job popularizing the Perl Mongers at the conference, which is why there are so many new user groups to report: Amsterdam, Blacksburg, Champaign-Urbana, Dayton, Lisbon, Melbourne, Pittsburgh, Rhode Island, Stockholm, Vancouver, and Washington D.C. More information about the Mongers is available from

Next year's conference will take place August 2124, 1999 in Monterey, California. The Call for Papers is now available at; working code and abstracts are due April 9.

Chris Nandor now maintains a Perl News column at, updated daily with newly-uploaded modules. Chris also released Audio::MP3::Tag, which lets you extract and edit tag information in MP3 files. Then he got a little crazy and wrote perlport.pod, a guide to writing portable Perl code. It's bundled with new versions of Perl and is therefore available at CPAN/doc/manual/html/pod/perlport.html.

Chip Salzenberg and Alan Olsen have created six mailing lists at; send mail to with"subscribe LISTNAME" in the body of your message to join these groups:

Win32::SerialPort and Win32API::CommPort, by Bill Birthsiel, allow access to Win32 serial devices such as modems.

Ken Fox updated his X11::Lib, X11::Motif, and X11::Toolkit modules and released a few more: X11::Xbae, X11::XRT, and X11::Xpm. Ken also uploaded Math::Units, which converts between different systems of units. A related module is Colin Kuskie's Convert::SciEng, which converts numbers between scientific notation postfix (2.5m) and regular numbers (2.5e-3).

Bek Oberin released five modules: Lingua::EN::Gender, which performs English inflection of pronouns; Festival::Client, which sends text to a Festival speech synthesizer; Net::Goofey, a client interface to Goofey servers; Net::ICQ, a client for ICQ servers (ICQ is a program that lets you find your friends and associates in real-time); and Text::LineEditor, a Berkeley-mail style line editor. The Math::Expr module, by Hakan Ardo, parses mathematical expressions into a tree structure.

TinyHTTPD, by James Briggs, is a small but featureful pure Perl web server in a single file. It supports authentication, caching, and SSI support.

Ken Williams updated or released seven modules: Text::Fillin, supporting fill-in text templates; Tie::TextDir, a module that ties a hash to a Unix directory; Tie::DB_Lock, which lets you lock DB_Files; Tie::LLHash, which implements "ordered" Perl hashes; HTML::SimpleParse, an HTML parser suited for filtering HTML; Apache::SSI, a module that performs HTML server-side includes with mod_perl, and Taco, a dynamic web page framework for mod_perl.

The sitemapper, by Ave Wrigley, is a script that takes a base URL, traverses the web pages below it, and generates an HTML page illustrating the site. It's available from

Blair Zajac's WebFS::FileCopy module lets you move files around the web. Instead of providing traditional pathnames, you provide URLs instead. It requires Gisle Aas' LWPng (Library-World-Wide-Web-Perl-Next-Generation) package. Gisle also released URI, an update and simplification of the URI::URL classes. He also wrote a Lisp evaluator in Perl called perl-lisp.

AltaVista::SearchSDK, by James Turner, makes the AltaVista search engine API available to Perl. It's useful if you're running the AltaVista search engine on your site.

A milestone for Perl database hackers: Tim Bunce released version 1.00 of DBI, the Database Interface. I recommend the DBI home page maintained by Alligator Descartes at if you work with databases.

Raphael Manfredi's popular Storable module, for maintaining persistent data structures, is now in beta.

Philip Aston's CORBA::IOP::IOR lets you manipulate Common Object Request Broker Architecture Interoperable Object References if you can handle all the jargon. The other CORBA module is Oliver Kellogg's CORBA::IDLTree, an IDL to symbol tree translator.

ptkdb, by Andrew Page, is a graphical (Perl/Tk) debugger. You can retrieve it from

The Perl/Tk module list is at CPAN/modules/by-module/tk-modlist.html.

Shinji Kono released CheckBoard, a Perl/Tk calendar and scheduler.

The Text::Graphics module, by Stephen Farrell, is a toolkit for rendering plain text via an API like that used for graphics rendering in GUI toolkits. It's meant to be used for complicated text positioning, such as intricate email or fax forms.

Shawn Wallace released four modules of PostScript drawing routines: PS::Document, PS::TextBlock, PS::Metrics, and PS::Elements.

Stephen McCamant released a new version of B::Deparse, a compiler backend that turns compiled Perl programs back into source code.

Charlie Stross released NetServer::SMTP, a minimal mail server. It requires IO::Socket, NetServer::Generic, Mail::Internet, Mail-Utils, Data::Dumper, and FreezeThaw. Also in the NetServer:: category is NetServer::ProcessTop, which shows you information about the event loop of a process.

mon, by Jim Trocki, is a an extensible service monitor which can be used to watch network resources. It supports parallelization and can send out email, pages, or other alerts when something fails. It can test for disk space, HTTP, SMTP, NNTP, FTP, POP3, IMAP, SNMP, ping, and telnet. You can download it from

Amine Moulay Ramdane released the Win32::MemMap module, which lets you move regions of memory around faster than a traditional copy. It's available from

Joshua Pritikin's Module::Reload reloads any files in %INC based on their timestamps.

The enum pragma, by Byron Brummer, lets you use C-style enumerated types in Perl. It's useful for giving mnemonic names to array indices, or catching some typos at compile time.

Gurusamy Sarathy uploaded PerlInterp, a proof-of-concept for creating Perl interpreters from within Perl.

Lincoln D. Stein released Crypt::CBC, a pure Perl implementation of cryptographic cipher block chaining. It requires the MD5 module and either the Crypt::DES module or the Crypt::IDEA module, depending on which encryption algorithm you want to use. Luis Munoz released Crypt::PasswdMD5, which uses the MD5 module to implement the crypt() function. However, it's not freeware; according the license you have to buy Luis a beer if you meet him. Luis also wrote Auth::Challenge::Basic, which uses MD5 to implement a simple challenge-response authentication.

The Geanfammer module (GEnome ANalysis and protein FAMily MakER), by the Cyrus Clothia group, takes a protein sequence and shows all of the sequence domains.

Information about modules and other Perl news should be sent to and

The Comprehensive Rerl Archive Network (CPAN).


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