Perl


Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee development of the core language, and its upcoming version, Perl 6.

Perl borrows features from other programming languages including C, shell scripting (sh), AWK, and sed. The language provides powerful text processing facilities without the arbitrary data length limits of many contemporary Unix tools, facilitating easy manipulation of text files. It is also used for graphics programming, system administration, network programming, applications that require database access and CGI programming on the Web. Perl is nicknamed "the Swiss Army chainsaw of programming languages" due to its flexibility and adaptability.

History

Early Perl Versions

Larry Wall began work on Perl in 1987, while working as a programmer at Unisys, and released version 1.0 to the comp.sources.misc newsgroup on December 18, 1987. The language expanded rapidly over the next few years.

Perl 2, released in 1988, featured a better regular expression engine. Perl 3, released in 1989, added support for binary data streams.

Originally the only documentation for Perl was a single (increasingly lengthy) man page. In 1991, Programming perl (known to many Perl programmers as the "Camel Book") was published and became the de facto reference for the language. At the same time, the Perl version number was bumped to 4—not to mark a major change in the language but to identify the version that was documented by the book.

Early Perl 5

Perl 4 went through a series of maintenance releases, culminating in Perl 4.036 in 1993. At that point, Wall abandoned Perl 4 to begin work on Perl 5. Initial design of Perl 5 continued into 1994. The perl5-porters mailing list was established in May 1994 to coordinate work on porting Perl 5 to different platforms. It remains the primary forum for development, maintenance, and porting of Perl 5.

Perl 5.000 was released on October 17, 1994. It was a nearly complete rewrite of the interpreter, and it added many new features to the language, including objects, references, lexical (my) variables, and modules. Importantly, modules provided a mechanism for extending the language without modifying the interpreter. This allowed the core interpreter to stabilize, even as it enabled ordinary Perl programmers to add new language features. Perl 5 has been in active development since then.

Perl 5.001 was released on March 13, 1995. Perl 5.002 was released on February 29, 1996 with the new prototypes feature. This allowed module authors to make subroutines that behaved like Perl builtins. Perl 5.003 was released June 25, 1996, as a security release.

One of the most important events in Perl 5 history took place outside of the language proper and was a consequence of its module support. On October 26, 1995, the Comprehensive Perl Archive Network (CPAN) was established as a repository for Perl modules and Perl itself. At the time of writing, it carries almost 17,000 modules by more than 7,000 authors. CPAN is widely regarded as one of the greatest strengths of Perl in practice.

Perl 5.004 was released on May 15, 1997, and included among other things the UNIVERSAL package, giving Perl a base object to which all classes were automatically derived and the ability to require versions of modules. In addition, Perl now supported running under Microsoft Windows and several other operating systems.

Perl 5.005 was released on July 22, 1998. This release included several enhancements to the Regex engine, new hooks into the backend through the B::* modules, the qr// regex quote operator, a large selection of other new core modules, and added support for several more operating systems, including BeOS.

2000–Present

Perl 5.6 was released on March 22, 2000. Major changes included 64 bit support, unicode string representation, large file support (eg, files > 2 GiB) and the 'our' keyword. When developing Perl 5.6, the decision was made to switch the versioning scheme to one more similar to other open source projects; after 5.005_63, the next version became 5.5.640, with plans for development versions to have odd numbers and stable versions to have even numbers.

In 2000, Larry Wall put forth a call for suggestions for a new version of Perl from the community. The process resulted in 361 RFCs (Request for Change) documents which were to be used in guiding development of Perl 6. In 2001, work began on the apocalypses for Perl 6, a series of documents meant to summarize the change requests and present the design of the next generation of Perl. They were presented as a digest of the RFCs, rather than a formal document. At this point, Perl 6 simply existed as a description of a language.

Perl 5.8 was first released on July 18, 2002, and had nearly yearly updates since then. The latest version of Perl 5.8 is 5.8.9, released December 14, 2008. Perl 5.8 improved unicode support, added a new IO implementation, added a new thread implementation, improved numeric accuracy, and added several new modules.

In 2004, work began on the Synopses – originally documents that summarized the Apocalypes, but which became the specification for the Perl 6 language. In February 2005, Audrey Tang began work on Pugs, a Perl 6 interpreter written in Haskel. This was the first real concerted effort towards making Perl 6 a reality. This effort stalled in 2006.

On December 18, 2007, the 20th anniversary of Perl 1.0, Perl 5.10.0 was released. Perl 5.10.0 included notable new features, which brought it closer to Perl 6. Some of these new features were a new switch statement (called "given"/"when"), regular expressions updates, and the smart match operator, "~~".

Around this same time, development began in earnest on another implementation of Perl 6 known as Rakudo Perl, developed in tandem with the Parrot virtual machine. As of November 2009, Rakudo Perl has had regular monthly releases and now is the most complete implementation of Perl 6.

The latest development release of Perl 5 is 5.11.4, announced by Ricardo Signes on January 21, 2010, includes further unicode updates (now using the 5.2 version of the Unicode Character Database) handling of every Unicode character property, changed the 'legacy' pragma to 'feature'. Earlier releases included implied strictures, updates to the regex matching engine, pluggable method resolution order engines, and changes to core modules to make maintenance easier. A major change in the development process of Perl 5 occurred with Perl 5.11 as well; the development community has switched to a monthly release cycle, with planned release dates three months ahead. This is the first release of Perl since the code freeze for 5.12.0.

Name

Perl was originally named "Pearl," after the Parable of the Pearl from the Gospel of Matthew. Larry Wall wanted to give the language a short name with positive connotations; he claims that he considered (and rejected) every three- and four-letter word in the dictionary. He also considered naming it after his wife Gloria. Wall discovered the existing PEARL programming language before Perl's official release and changed the spelling of the name.

When referring to the language, the name is normally capitalized ( Perl ) as a proper noun, as you would a spoken language (e.g. English or French). When referring to the interpreter program itself, the name is often uncapitalised ( perl ) because most Unix-like file systems are case-sensitive. Before the release of the first edition of Programming Perl , it was common to refer to the language as perl ; Randal L. Schwartz, however, capitalised the language's name in the book to make it stand out better when typeset. This case distinction was subsequently documented as canonical.

There is some contention about the all-caps spelling "PERL," which the documentation declares incorrect and which some core community members consider a sign of outsiders. Although the name is occasionally taken as an acronym for Practical Extraction and Report Language (which appears at the top of the documentation and in some printed literature), this expansion actually came after the name; several others have been suggested as equally canonical, including Wall's own humorous Pathologically Eclectic Rubbish Lister . Indeed, Wall claims that the name was intended to inspire many different expansions.

The camel symbol

Programming Perl , published by O'Reilly Media, features a picture of a camel on the cover and is commonly referred to as The Camel Book . This image of a camel has become a general symbol of Perl. It is also a hacker emblem, appearing on some T-shirts and other clothing items.

O'Reilly owns the image as a trademark but claims to use their legal rights only to protect the "integrity and impact of that symbol" . O'Reilly allows non-commercial use of the symbol and provides Programming Republic of Perl logos and Powered by Perl buttons. However, the Camel has never been meant to be an official Perl symbol, and if one is to be considered instead, it's an onion.

Overview

Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide ra


About this entry