|Unless otherwise noted, all modules and documentation mentioned here should be available on CPAN, at http://www.perl.com/CPAN/.
This column's online companion is the Perl News at http://www.news.perl.org/. To join the firstname.lastname@example.org mailing list, sent (semi-)daily with all the latest Perl news, send mail to email@example.com.
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 firstname.lastname@example.org.
Have you ever wanted to learn the latest Perl techniques while watching caribou graze on the Alaskan shore? Heck, who hasn't? Our wishes can be reality. The Perl Whirl , an event combining all the best in Alaskan cruising with all the best in Perl training, is slated for May 29 --June 5, 2000. Check out http://www.geekcruises.com/ for details.
The third annual Perl Conference from O'Reilly (now part of the Open Source Convention) has come and gone. There were whole bunches of good sessions, and O'Reilly has now posted the available materials online at http://conferences.oreilly.com/cd/perl3/. Conference guy Nathan Torkington is already hard at work organizing next year's offerings.
Larry Wall (that guy who, you know, created Perl) enlightened and entertained with the Third State of the Onion speech, this time an exploration of chemistry and molecules and atoms and fun things that Wall did in a previous life as a chemistry student. It was another post-modern talk, moving in, around, and occasionally on top of a larger point about Perl. Read and view the presentation at http://www.perl.com/1999/08/onion/talk.html.
Lots of awards were doled out at the conference. As usual, awards were presented to the best submitted papers and modules. Peter J. Braam, Michael Callahan, and Phil Schwan won for their paper on The InterMezzo Filesystem, a distributed filesystem written in Perl. Uri Guttman and Larry Rosler won for A Fresh Look at Efficient Perl Sorting, which discussed techniques of using packed records to do a single comparison rather than doing several comparisons as is common inthe map/sort/map technique. Gary Spivey won an award for MEADE (A Modular, Extensible, Adaptable Design Environment for ASIC and FPGA Development). In the special awards, Rocco Caputo won the Best Module award for his POE (which is basically an OS written in Perl), and Damian Conway (who won twice last year) won the Most Useful award for Coy, described in this issue.
In the Perl Bowl, programmers were pitted against one another in head-to-head competition, while announcers conducted commentary and line-by-line analysis. Jason Kruger was victorious, winning a 400MHz Celeron machine from VA Linux Systems. The following day, Jon Orwant hosted the second annual Perl Quiz Show. London Perl Mongers Andy Wardley, Peter Haworth, Richard Clamp, and Nick Ing-Simmons won it all.
Also given out were the White Camel Awards, a joint effort from O' Reilly and the Perl Mongers. Tom Christiansen was granted the Perl Advocacy Award for his contributions to Perl evangelism and documentation. Kevin Lenzo won the Perl Community Award for his work in starting up and running the first annual Yet Another Perl Conference (yapc), a low-cost conference for Perl users. Adam Turoff won the Perl User Group Award for his work in starting up and providing assistance to Perl Mongers. Each recipient was awarded an oversize check for $3000, which presumably was accompanied by a smaller check for $3000 that can be taken to a bank for exchange into legal tender.
More groups have joined the Perl Monger fold in the last few months. In the USA, new groups include Columbia MO, Palo Alto CA, Salisbury MD, South Lake Tahoe CA, Sussex WI, Tacoma WA, Thousand Oaks CA, and Walnut Creek CA. In the rest of the world: Caracas (Venezuela), Cardiff (Wales), Chandigarh (India), Croydon (United Kingdom), Faro (Portugal), Franca (Brazil), Guimaraes (Portugal), Manila (Philippines), Oxford (United Kingdom), Peking (China), Reading (United Kingdom), São Paulo (Brazil), Seoul (South Korea), Taipei (Taiwan), Wellington (New Zealand).
The transference of the services provided by the now-defunct Perl Institute to the ever-growing Perl Mongers is pretty much complete. Many of the services are hosted either on the new Perl Mongers advocacy site at http://www.perl.org/ or on other sites in the perl.org and cpan.org domains. The perlbug database is now on http://bugs.perl.org/, and the perl.org mailing lists (as well as ftp.perl.org and ftp.cpan.org) are being hosted by ValueClick. Graham Barr's CPAN Testers is now located at http://testers.cpan.org/.
At The Perl Conference, Barr unveiled the CPAN Search Site, a comprehensive site for searching the CPAN. Each module has its own page, containing links to all of the documentation, reports from CPAN testers, and more. Enjoy it at http://search.cpan.org/.
Kurt Starsinic started Perl Labs at http://labs.perl.org/, a farm of computers to build Perl in various configurations.
Perl Mongers, in conjunction with CareerMosaic, has a Perl Mongers Career Center at http://jobs.perl.org/. One can post resumes, and job opportunities, and search the various offerings.
Perl News is now at http://www.news.perl.org/ and has some cool new features available, including better searching and an RSS file for including the Perl News headlines in other services.
O' Reilly' s Perl site, http://www.perl.com/, has a new managing editor: TPJ columnist Mark-Jason Dominus. He will be handling much of the content on the site, and has started a new feature on the site: weekly summaries of perl5-porters, the mailing list for development of perl. The summaries are also sent by mail each week; subscribe by sending mail to email@example.com.
The defunct Perl packrats list has been revived, for keeping track of various bits of interest related to Perl. The list began in 1993, but fizzled out in 1995. Send the message subscribe packrats your_email_address to firstname.lastname@example.org.
Perl4Lib (http://www.vims.edu/perl4lib/) is an unmoderated mailing list for librarians interested in Perl.
Manning Publications, publisher of Damian Conway's Object Oriented Perl, has released Elements of Programming with Perl by Andrew L. Johnson. The book introduces programming using Perl, and assumes no prior programming experience.
Windows NT Workstation Configuration and Maintenance is a newly released O'Reilly title,covering automated management of NT workstations with Perl. Alligator Descartes and Tim Bunce are writing Programming the Perl DBI for O'Reilly; it should be available soon.
Chip Salzenberg has been working on an experimental rewrite of Perl in C++, called Topaz. www.perl.com posted an interview with Salzenberg, as well as his Perl Conference talk about it (both in RealAudio and as an MP3).
Okay, it isn't Perl for the Pilot, but it is something. Robert Spier has released the perl 5.00503 docs for the Palm Pilot, in two formats: TealDoc and Plain Palmdoc. See http://www.perl.com/CPAN/authors/id/R/RS/RSPIER/.
Arved Sandstrom has written MacSWIG and an accompanying tutorial, which you can find at http://macperl.com/depts/Tutorials/. SWIG (Simplified Wrapper Interface Generator) is a tool to create interfaces from low-level languages to high-level ones. It is similar to Perl's XS (Sandstrom also has a tutorial for XS on the Mac posted in the same place), but is language independent, having been extended to Perl, Python, Tcl, Java, Eiffel, and Guile. Mac SWIG currently supports only the PowerPC architecture.
As of this writing, the latest development release of Perl is 5.005_62. Development of Perl 5.6 still continues, though the tentative schedule for its beta release has lapsed.
ActiveState presses on with releases of its software. ActivePerl, its release of Perl for Win32, is at build 522; PDK (the Perl Development Kit) is at version 1.2.4; PerlEx (a Perl plugin for NT web servers) is at version 1.1.6. All of this can be had at http://www.activestate.com/.
Netscape::Bookmarks by Kirrily 'Skud' Roberts processes and manipulates Netscape bookmark files.
Based on HTTP::Daemon and LWP, kirra-http-server (http://kyla.kiruna.se/~goran/perl/) uses Perl 5.005 threads and XML for configuration.
Jon Peterson's Apache::Archive shows the contents of tar and tar.gz files to users, allowing them to select portions of the archive to view. Apache::OWA from Svante Sörmark runs scripts written using Oracle's PL/SQL Web Toolkit. Chad Hogan wrote Apache::SetWWWTheme, which generates themes for displayed pages, including sidebars and navigation bars. Stas Bekman wrote Apache::VMonitor to monitor server processes.
Mark Summerfield wrote CGI::QuickForm for the quick creation and parsing of forms and form data. CGI::EncryptForm by Peter Marelas encrypts data that is passed back to an HTML form in a hidden field, for more secure transactions that need to maintain state. Sam Tregar's HTML::Pager creates a set of HTML pages for arbitrary data.
Ken MacLeod's libxml is a distribution of various XML modules for use with XML::Grove, XML::DOM, and other packages. Chang Liu wrote XML::Node, a simplified interface to XML::Parser (the basis of all things XML). Jonathan Eisenzopf's XML::RSS creates RSS files, which can be used to distribute headlines and summaries on news sites (such as Perl News) for distribution on sites like my.netscape.com.
Russ Allbery has been hard at work on better POD utilities, and his podlators distribution includes converters for POD into various formats. Pod::Tree from Steven McDougall parses POD into a syntactic tree and can create HTML based on the tree.
Robert Rothenberg wrote RTF::Document and RTF::Group for generating RTF (rich text format) files and manipulating RTF groups. Martin Hosken authored the Text::PDF distribution for creating and manipulating PDF files.
The GD module, from Lincoln Stein, is an interface to Thomas Boutell's gd graphics library. Most GIF libraries rely on LZW compression, for which Unisys owns the patent. Because of Unisys. cracking down on what it considers to be infringements, the gd library no longer supports GIFs. Boutell replaced GIF support with a newer format called PNG. As such, the GD module has followed suit, and supports only PNG; and instead of GIFgraph, the Chart::PNGgraph module can be used for creating graphs with it.
The GIF format is not dead yet, though. How else could you make cheap, easy, portable animations of men wearing hardhats for your Under Construction web site? Benjamin Low's Image::ParseGIF divides animated GIFs into individual frames.
Edwin Pratomo wrote Algorithm::Permute, which permutes arrays. Chip Turner's Math::GMP is designed to be a drop-in replacement for Math::BigInt, relying on the GNU gmp library for greater speed.
Jon Orwant has posted a pair of modules relating to his book, Mastering Algorithms with Perl: Statistics::Table::F for F-ratios, and Statistics::Table::t for t-tests. One of Orwant's co-authors, Jarkko Hietaniemi, released the Graph distribution, for performing various kinds of graph theoretic operations.
B::Fathom from Kurt Starsinic evaluates the readability of Perl code. B::Size, by Doug MacEachern, measures the size of Perl OPs and the building blocks of Perl's guts: SVs, AVs, and HVs.
The Conjury system by James H. Woodyatt is a general purpose software construction framework, an alternative to the make utility.
Michael Schwern's Carp::Assert provides assertions for Perl programs.
The Thesaurus module, from David Rolsky, creates lists of related items. Mark Rogaski's Tree::Ternary implements ternary search trees, as described by Jon Bentley and Robert Sedgewick in the April 1998 issue of Dr. Dobb's Journal.
John Nolan's Data::Walker lets you navigate a data structure much as you'd walk through a directory structure. Data::HexDump, by Fabien Tassin, creates hexadecimal dumps of data.
DBIx::TextIndex, by Daniel Koch, performs full-text searching in SQL databases.
The Units package, from Robert Rothenberg, is a collection of modules for parsing strings with unit measurements (such as "12pt" or " 3 meters" ) and converting them to some other unit (such as picas or inches).
John Porter's Tie::HashDefaults lets hash keys have default values; his Tie::OffsetArray ties one array to another with an offset index.
Taisuke Yamada wrote Tie::LDAP for tying an LDAP (Lightweight Directory Access Protocol) database to a hash. Yamuda's Schedule::Match module manages schedules with a structure similar to crontab's format, and has methods for detecting scheduling conflicts.
Even though we know it is usually evil, sometimes bulk mailings are necessary and perfectly legal and ethical. Jim Thomason's Mail::Bulkmail is a fast and efficient tool for any bulk mailer folks wearing white hats.
Net::AIM, from Areyh Goldsmith, implements the AOL Instant Messenger TOC protocol, and Net:xAP from Kevin Johnson is a base class for the "Access Protocol" family of protocols, including a module for IMAP access.
Mac::Glue and Mac::AppleEvents::Simple have been updated to support the Mac OS 9 capability of sending Apple events over TCP/IP.
Seth Johnson's Audio::DSP is an interface to the DSP audio device under Unix.
Dan Urist's Proc::ProcessTable provides a consistent interface to the process table on Unix and Unix-like platforms.
Tk::Month, by Anthony Iano-Fletcher, provides a calendar widget for your graphical programs.__END__