2024 π Daylatest newsbuy art
Trance opera—Spente le Stellebe dramaticmore quotes
very clickable
data + munging

The Perl Journal

Volumes 1–6 (1996–2002)

Code tarballs available for issues 1–21.

I reformatted the CD-ROM contents. Some things may still be a little wonky — oh, why hello there <FONT> tag. Syntax highlighting is iffy. Please report any glaring issues.

Chris Nandor (2000) Perl News. The Perl Journal, vol 5(4), issue #20, Winter 2000.

Perl News

Chris Nandor


The Perl 6 process has been moving along. The Requests For Comments, which represent all the expressed ideas that participants want in Perl 6, are the result of the initial design phase. With 361 RFCs and dozens of mailing lists, a lot of opinions were offered on what Perl 6 should look like (see https://dev.perl.org/ for RFCs and lists). At the beginning of October, Nathan Torkington, Perl 6 project manager, stopped accepting RFCs, and Larry Wall, the Perl 6 language designer, started going through them, looking at what was good and what wasn't.

The process, which mostly went according to the plan forged at The Perl Conference last summer, was not without its critics. Mark-Jason Dominus, Managing Editor of www.perl.com, wrote a piece (one that gets extra points for use of the word "butt-pimple") for www.perl.com about the problems with the process itself and with many of the RFCs, noting that it was hampered by a lack of organization and a lack of understanding of Perl and language design by many of the participants. Jarkko Hietaniemi, the Perl 5.7 pumpking, countered in
a published response that while the state of many of the RFCs may be lacking, the more important part is that there was discussion, that ideas were expressed, and that it provides a way for the community to give feedback into what they want.

In October, Wall gave a keynote at the Atlanta Linux Showcase and discussed his thought process for deciding what is going to happen with Perl 6, and offered some insight into what Perl 6 will look like. He said that Perl's parser and lexer should be written in Perl, more non-critical functions will be moved out of the core into modules, all variables will be objects (not just scalars), global variables will be replaced by lexically scoped equivalents, XS will be replaced by something easier to use, and typeglobs will go away. Check out the slides, transcription, and audio, all on https://dev.perl.org/.

As of this writing, Wall is working on the language specification, while Dan Sugalski, the head of the internals group, is heading up the internal API specification on the various perl6-internals mailing lists.

Meanwhile, Perl 5 is still moving forward. Sarathy Gurusamy, the Perl 5.6 pumpking, is wading through scores of patches and preparing for a 5.6.1 release. Hietaniemi released 5.7.0 (5.7 is the development branch for the eventual 5.8 release) in September.

Even though this is the offseason for Yet Another Society's (https://www.yetanother.org/) Yet Another Perl Conferences (YAPC::America::North and YAPC::Europe), YAS has been quite busy with a new project: patronage. In October, YAS introduced a plan to award a Perl Development Grant to Damian Conway, which would pay for him to work entirely on Perl for a full year, buying out his contract at Monash University in Australia. They needed US $55,000 in about two weeks to accomplish the goal, and with the help of a single donation of half the total cost by the online video retailer BlackStar (https://www.blackstar.co.uk/), and over 130 other contributors taking up the other half, the goal was accomplished in time. Other corporate contributions came from VA Linux, Manning Publications, Stonehenge, and O'Reilly & Associates. Conway, a celebrated Perl author, speaker, and coder, will begin his Year of Perl in January, and will code and write papers and make appearances around the world. See https://yetanother.org/damian/ for more information, including Conway's diary and calendar.

The German Perl Workshop 3.0 (www.perlworkshop.de/2001/), run in cooperation with YAS, is scheduled for 28 February to 2 March, 2001, to be held at Poly-technic/University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin Campus (near Bonn), Germany. The workshop presentations are mostly in German, but English presentations are welcome.

Some cool new online resources have appeared in the last few months. Carlos Ramirez aims to provide for many of our documentation needs at https://perldoc.com, which currently contains all the standard Perl documentation, with plans to include CPAN module docs. It has some unique features, including providing short URLs to basic documentation. To access a perlfunc entry, use https://perldoc.com/f?map, and to access a manpage, use https://perldoc.com/m?perlfaq1.

Michael Stevens has put up Perls versions 1 through 4.036 at https://www.etla.org/retroperl/, and Ask BjØrn Hansen has put up a bunch of different sources from Perls past at https://mirrors.valueclick.com/perl/really-ancient-perls/.

Martin C. Brown has two new books out. Perl! I Didn't Know You Could Do That ... from Sybex and Debugging Perl: Troubleshooting for Programmers from McGraw-Hill. The former contains all sorts of different tasks to accomplish with Perl, while the latter discusses how to debug code, and use the Perl debugger, effectively. Other books from Wrox, Manning, Addison-Wesley, and other publishers are due within the next few months.

Tom Christiansen, co-author of Programming Perl, has written perlman, a suite of tools for accessing Perl documentation, which were mentioned in the third edition of Programming Perl. The base program, perlman, allows you to access the rest of the documentation (e.g., to access the perlop manpage, call perlman perlop, or simply perlop). There will also be a perlhelp program to search all the available documentation at once, and perldoc for backward compatability. It may be included in the Perl 5.6.1 distribution.

ActiveState has been busy, as usual. They've introduced PerlDevKit 2.0, a distribution including Perl Debugger, now with remote debugging; PerlApp to create self-running, and now smaller, executables; PerlSvc to turn scripts into Windows NT services; PerlCtrl to create ActiveX controls, and more. A license is $125.

PerlMx is ActiveState's mail filter enginer for sendmail, and runs under various Unix flavors. Komodo is ActiveState's cross-platform development framework built on top of Mozilla, available in beta for Windows NT/2000. The company has also branched into the Python world with its first beta of ActivePython.

NuSphere (https://www.nusphere.com/) has partnered with MySQL to produce NuSphere MySQL, a single distribution that installs and configures Apache, Perl, PHP, and MySQL on Windows and various Unix platforms. Help Consulting (https://helpconsulting.net/) has released visiPerl+ 2.0, a Perl IDE with built-in FTP client and mini web server.

Cnation (https://opensource.cnation.com/) has released a bucketful of their projects as open source. BingoX is a web app building framework (including BingoX::Carbon, a database abstraction class), Apache::XPP is a lightweight embedded-Perl-in-HTML parser, and HTTP::Monkeywrench is a web site testing tool.

Apache::PageKit, by T.J. Mather, is an application framework using mod_perl and HTML::Template. Matt Sergeant's Apache::Reload reloads changed modules.

Balázs Szabó's dTemplate is yet another template system, handling basic logic, character encoding, and printf-style formatting. Szabó's Parallel::ForkManager is a simple parallel processing fork manager.

Sean M. Burke wrote a module called HTML::Tagset which contains various data structures listing HTML tags in certain categories. For example, exists $HTML::Tagset::emptyElement{'hr'} is true, because the hr HTML tag cannot contain any content. His Lingua::EN::Numbers::Ordinate module converts cardinal numbers ("3") to ordinal numbers ("3rd"), and his Mac::RecentDocuments module can add documents to the Mac OS "Recent Documents" folder.

Tatsuhiko Miyagawa's Mac::Macbinary can decode Macintosh binary files on any platform. (Paul Schinder's Mac::Conversions can create and decode Mac binary files, but works only under MacPerl.)

Hugh Kennedy's Number::Phone::US validates U.S. phone numbers; that is, it checks to see if the number is properly formatted. According to the docs, the module "does _not_ check and see if $number is a functioning number, although maybe it should."

Kennedy's HTML::Widgets::DateEntry outputs HTML to render forms for entering dates. Francesc Guasch wrote HTML::Widgets::Search for building searches with DBI (currently only MySQL is supported) and returning HTML.

Edwin Pratomo wrote DBD::InterBase and Dean Arnold wrote DBD::Teradata, for accessing those databases from DBI. Richard Sutherland's DDL::Oracle generates DDLs for Oracle databases.

DBIx::SearchBuilder by Jesse Vincent provides easy generation of SQL SELECT statements. DBIx::XMLMessage, by Andrei Nossov, maintains simple XML templates that describe database structure, generates SQL statements based on those templates, executes them against DBI data sources, and returns the results in XML, allowing object exchange between different databases.

Mail::CheckUser is a module from Ilya Martynov for checking the validity of email addresses, using syntax checks, MX host lookups, and querying of the mail server directly. MIME::Lite::HTML, by Alain Barbet, creates MIME email from HTML.

Log::Agent::Rotate and Log::Agent::Logger are modules from Raphael Manfredi, extending his Log::Agent module. Log::Agent::Logger provides a nice API to Log::Agent, and Log::Agent::Rotate rotates logs created by Log::Agent.

Ed Avis wrote Log::TraceMessages to ease the management of diagnostic messages during the debugging of code.

Inline by Brian Ingersol and featured in TPJ #19, allows the inclusion of C code (and potentially, other languages) within Perl programs.

Daví Helgason wrote Sub::Curry to provide Lisp-like curry functions to Perl.

Jettero Heller's AI::jNeural is a Perl interface to Jet's Neural Architecture (https://www.voltar.org/jneural/). Heller's Math::Business::EMA calculates the exponential moving average of stock prices.

Ashish Gulhati has added yet another Gnu Privacy Guard module to CPAN, Crypt::GPG. Crypt::Rijndael, by Rafael R. Sevilla, is a Crypt::CBC-compliant Rijndael encryption module.

Math::Round, by Geoffrey Rommel, rounds numbers in various ways, such as to the nearest integer (with numbers halfway going to the greater integer, or the nearest odd or even integer), or to the nearest multiple of a given target.

Chris Phillips wrote Tk::Pgplot, a front end to PGPLOT for Perl/Tk.

GD::Barcode is Kawai Takanori's module to create barcode images (Code39, EAN13, EAN8, NW7, UPC-A, and UPC-E) with GD. I used it to create UPC symbols for various items around my house, just in case. Takanori also wrote OLE::Storage_Lite, a simple class providing an OLE document interface, and Spreadsheet::ParseExcel to get information out of a Microsoft Excel file.

Aldo Calpini's Win32::API allows calling arbitrary functions from the Win32 API (though input and output parameters are limited to simple cases). Chad Johnston's Win32::SystemInfo returns memory and processor information on Win32 systems.

Benjamin Trott wrote Config::FreeForm to allow the keeping of external configuration data in Perl data structures.

The ex:: module prefix is being used for experimental pragmata. ex::override, from Casey Tweten, is a pragma to override Perl builtins, by passing to the pragma the function name and function reference. Piers Cawley wrote ex::implements and ex::interface for interface polymorphism (as in Perl 6 RFC 265).

Filesys::Ext2 by Jerrad Pierce is an interface to the e2fs filesystem attribute functions chattr(1) and lsattr(1).

sol-inst is a collection of modules from Chris Josephes for accessing basic installation information in Solaris.

Jonas Liljegren's RDF::Service is a core library for the Web Resource Application Framework (www.uxn.nu/wraf/), the purpose of which is to construct applications that fully use the RDF data model the better to realize Tim Berners-Lee's Semantic Web.

Michael Stevens has written a pair of new components for POE. POE::Component::RSS does event-based parsing of RDF Site Summary (RSS) files, and POE::Component::SubWrapper is an event-based wrapper for subroutines.

Parse::Tokens, by Steve McKay, provides a base class for parsing delimited strings from text blocks.

Frederic Soriano wrote Tree::Nary, implementing N-ary search trees.

Tie::Scalar::Timeout from Marcel Grunauer does what it says: it times out a scalar variable. You can specify a specific time, or a number of uses, and on expiration, provide a new value to assign, or a code reference to execute.

Unicode::MapUTF8, by Benjamin Franz, does conversions to and from arbitrary character sets and UTF8.

MP3::Tag, by Thomas Geffert, is yet another MP3 ID3v1/ID3v2 Tag module, but this one can write ID3v2 tags.

Ed Avis' Term::ProgressBar module provides a nifty progress bar for command line programs.

"Practical Algorithm to Retrieve Information Coded as Alphanumeric", or Patricia, is for routing table lookups in BSD, and Dave Plonka's Net::Patricia uses the algorithm to do fast IP address lookups.

Ryan Eatmon's Net::Jabber is a Perl interface to the Jabber instant messaging system.

Ivan Kohler wrote a pair of modules, Net::SSH and Net::SCP, for secure shell and secure copy.

Data::Random, by Adekunle Olonoh, generates random data, including random words from a file, random dates, random characters, random time, and so on.

Dave Olszewski's Silly::Werder generates meaningless gibberish, which might be useful for creating random passwords, or for sending to a text-to-speech program or an IRC channel.

Chris Nandor (pudge@pobox.com) is a programmer for OSDN. Squiozoa oaphu blai frefai osum?

Martin Krzywinski | contact | Canada's Michael Smith Genome Sciences CentreBC Cancer Research CenterBC CancerPHSA
Google whack “vicissitudinal corporealization”
{ 10.9.234.152 }