Registration is now open for the 1998 O'Reilly Perl Conference, which will be held August 17 through 20 in San Jose, California. Visit http://conference.perl.com for details.
At the conference, I'll be the emcee of an Internet Quiz Show. One-, two-, and three-person teams will compete against one another, demonstrating their knowledge of both Perl and the Internet. If you have a team, or would like to join a team, send mail to contest@ tpj.com. The number of teams will be limited, so reserve your spot soon. (Yes, there will be prizes.)
The Call For Votes to decide whether to create a new Usenet newsgroup, comp.lang.perl.moderated, will probably have begun by the time you read this. For details, see the CFV announcement (which contains the proposed charter) in news.announce.newgroups.
Seven more Perl Users Groups have formed: the Atlanta, Chicago, London, Minneapolis, Montreal, Philadelphia, and San Francisco Perl Mongers. Visit their web pages at http://www.pm.org. Seattle also has a user group: http://www.halcyon.com/spug.
Solutionsoft released PerlBuilder, an IDE (integrated development environment) for Perl on Windows 95 and NT. It includes a visual editor and debugger as well as a CGI simulator.
MacJPerl, a version of Perl for the Macintosh that can process Japanese characters, is available at http://world.std.com/~habilis/macjperl courtesy of Chuck Houpt.
Finally, there's an Expect module, created by Austin Schutz. This lets you automate "conversations" between your Perl program and anything else: users, network services, web sites. It's the successor to chat2.pl and Comm.pl described in Lincoln Stein's article in this issue. It requires IO::Tty and IO::Stty.
Tye McQueen released Win32API::Registry, containing low-level functions and constants for the Win32 registry, and Win32API::File, which does the same for Win32 files and directories.
PDL, the Perl Data Language (fast number crunching in Perl), now has a home page: http://pdl.perl.org.
If you like word finds, try Andrew Johnson's WordFind module at http://www.ualberta.ca/~ajohnson/perl/WordFind.tar.gz.
Mike Beller created quoteview, a Perl/Tk viewer for stock quotes. It runs on Perl 5.004_02 with Perl/Tk 402.002, so any-one with Gurusamy Sarathy's binary distribution of Perl for Win32 can run it. http://www.monmouth.com/~beller/perlpub/ index.html. You'll also find ptksh there, an interactive Perl/Tk shell.
Slaven Rezic wrote a version of Tetris for Perl/Tk; you can find it at http://user.cs.tu-berlin.de/~eserte/src/tktetris/.
Byron Brummer released CGI::Validate, a strict CGI form parser that validates data types and field names; and Tk::MenuHash, which ties a Tk::Menubutton to a hash.
WDB, a Web-database front end by Jeff Rowe, that uses DBI (the Perl Database Interface) runs under both CGI and mod_perl.
John Heideman released a new version of WWW::Search, a module that provides an API to all the major search engines: AltaVista, DejaNews, Excite, HotBot, Infoseek, Lycos, Magellan, PLweb, SFgate, Verity, WebCrawler, and Yahoo. It requires the mainstay of web modules, LWP.
Tuomas J. Lukka released VRML::Browser, a browser for the Virtual Reality Modeling Language. You'll need an OpenGL library; Mesa is a free implementation.
Net::Socks, by Clinton Wong, provides Perl with a SOCKS client. SOCKS is a protocol for a secure proxy data channel between two computers; it's often used in firewalls.
Jochen Wiedmann released Cisco::Conf, which lets you perform Cisco router administration via TFTP; SQL::Statement, a small SQL (Structured Query Language; see TPJ #9) parser and engine; DBD::CSV, a DBI driver for comma-separated-values; and Text::CSV_XS, a module for manipulating comma-separated values.
The Geo::WeatherNOAA module, by Mark Solomon, tells you the current weather for U.S. cities. The temperature is 52° F and the relative humidity is 93% with 3 mph winds from the north as I write this.
Ian Clatworthy's SDF, the Simple Document Format, is available from CPAN/modules/by-authors/id/IANC.
A "readline" library makes it possible for command lines to behave like text editors, with keystrokes to move forward, move backward, and delete characters or words. Hiroo Hayashi's Term::Read-line:: Gnu extension makes the GNU readline library available to your Perl programs.
A PostScript module, by Thomas Riemer, is available at: ftp://apt4g.a3nyc.com/pub/distribute/libraries/postscript/genPS-0.01.tar.gz.
The RIPE-MD 160 message digest algorithm has been encapsulated into a module by Christian Geuer. You can find it at ftp://franz.ww.tu-berlin.de/incoming/RIPEMD160-0.1.tar.gz. (Message digests are one-way functions: you feed in a document, and it generates a shorter string that is hard to falsify.)
John A. R. Williams uploaded a number of mathematics modules: Math::Derivative, which computes first and second derivatives, Math::Amoeba and Math::Brent, which perform function minimization, Math::Spline, which generates cubic splines, and Math::Trig, which provides some trigonometric functions not built into Perl, like tan and cosh and acos. However, those are also available in the POSIX module bundled with Perl.
Mats Kindahl developed Math::Interpolate, which performs polynomial interpolation of data.
Magic squares are grids of numbers in which all rows, columns, and diagonals sum to the same number. Fabrizio Pivari's Math::MagicSquare checks whether squares are magic.
John Macdonald released the Heap bundle, containing packages for Fibonacci, Binomial, and Binary heaps. Heaps are data structures; in particular, they're a type of binary tree (see TPJ #8).
The MIME-tools bundle, by Eryq, contains ten modules and seven programs for doing just about everything you might ever want to do with MIME (Multipurpose Internet Mail Extensions) documents.
Jeremy Bishop released a number of modules as part of Evo-Script, a freeware web application engine written in Perl. String::Escape contains backslash, quoting, and escape functions; String::Excerpt truncates strings with ellipses; String::PropertyList turns data structures into text and back again; String::Words parses words and phrases and lists and hashes; and String::Format has formatting routines for numbers and dates. Not to be confused with William Ward's Number::Format, which also formats numbers.
Brian D. Foy's Business::ISBN module manipulates and validates International Scholastic Book Numbers.
Andy Wardley uploaded three new modules: App::Config, which helps you with configuration management; Text::MetaText, an implementation of a markup language that can be used to process text files with embedded directives, and Class::Singleton, a base class for objects that should only have one instance at a time, like print queues.
The Convert::Translit module, by Genji Schmeder, lets you convert between any of the 8-bit character sets in RFC 1345, "Character Mnemonics and Character Sets."
Just in case you didn't know, the English module bundled with Perl lets you use English names for Perl special variables. It lets you say $ARG instead of $_, $MATCH instead of $&, $OUTPUT_AUTOFLUSH instead of $|, and so on.
Mark-Jason Dominus' Interpolation module lets you control what happens when your variables are interpolated into strings.
Rich Bowen's HyperCal is a calendar program for the World Wide Web. Rich also has a conference scheduler and a postcard program in his author directory.
New modules should be cleared with the email@example.com 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 firstname.lastname@example.org.
Thanks to the efforts of Kurt Starsinic and others, there is now a scripts repository on the CPAN, with an associated e-mail address: email@example.com. To upload your script or module for everyone to use (thus becoming an Official Perl Developer, if there is such a thing) you must first be assigned a PAUSE ID at http://www.perl.com/CPAN/modules/04pause.html.
The Comprehensive Perl Archive Network (CPAN).