Perl
Perl, also Practical Extraction and Report Language (a backronym, see below), is an interpreted procedural programming language designed by Larry Wall. Perl borrows features from C, shell scripting (sh), awk, sed, and (to a lesser extent) many other programming languages.
Opinion
Perl engenders strong feelings among both its proponents and its
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
detractors.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Pro
Programmers who like Perl typically cite its power, expressiveness,
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
and ease of use. Perl provides infrastructure for many common
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
programming tasks, such as string and list processing. Other tasks,
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
such as memory management, are handled automatically and
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
transparently. Programmers coming from other languages to Perl often
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
find that whole classes of problems that they have struggled with in the
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
past just don't arise in Perl. As Larry Wall put it,
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
What is the sound of Perl? Is it not the sound of a wall that people
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
have stopped banging their heads against?
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Besides its practical benefits, many programmers simply seem to enjoy working in Perl. Early issues of The Perl Journal had a page titled "What is Perl?" that concluded
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Perl is fun. In these days of self-serving jargon, conflicting and unpredictable
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
standards, and proprietary systems that discourage peeking under the
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
hood, people have forgotten that programming is supposed to be
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
fun. I don't mean the satisfaction of seeing our well-tuned programs
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
do our bidding, but the literary act of creative writing that yields
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
those programs. With Perl, the journey is as enjoyable as the destination ...
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Whatever the reasons, there is clearly a broad community of people who
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
are passionate about Perl, as evidenced by the thousands of modules
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
that have been contributed to CPAN, and the hundreds of design proposals that were
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
submitted as RFCs for Perl 6.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Con
One common complaint against Perl is its syntax; in particular, its prodigious use of punctuation which some people claim make it look like "line noise". In The Python Paradox, Paul Graham both acknowledges and responds to this:
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
At the mention of ugly source code, people will of course think of
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Perl. But the superficial ugliness of Perl is not the sort I mean.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Real ugliness is not harsh-looking syntax, but having to build
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
programs out of the wrong concepts.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Another criticism is that Perl is excessively complex and compact, and that it leads to "write-only" code, that is, to code that is virtually impossible to understand after it has been written. It is, of course, possible to write obscure code in any language, but Perl has perhaps more than the usual share of terse, complex and arcane language constructs to exacerbate the problem. Perl supports many such features for backwards compatibility, and for use where maintainability is expressly not a concern, such as programs that are entered and run directly on the command line.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
The freewheeling language style that delights some Perl programmers concerns others. For example, as of Perl 5, Perl's native implementation of object-oriented programming features has weak enforcement of data security. Access to private data is restricted only by convention, not the language itself. An object created in one place may easily be modified in another; there may not be any single place where its state is definitively established. Although not native to the language, a stronger approach to object security can however be simulated through proper development practices and the use of infrastructure classes available on the CPAN.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
On a different level, one of the early Unix engineers from Bell Labs has expressed surprise that anyone could write important applications in a language for which there is no published specification.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Some worry that Perl is licensed under terms that are incompatible with commercial use. However, Perl is used successfully by many businesses.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Although its performance is adequate for many applications, Perl is not a good language for processor-bound tasks. A rule of thumb is that if resources to run Java are available, then Perl can certainly be used.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Table of Content ~
| ► | Introduction |
| ► | Overview |
| ► | Language structure |
| ► | Language design |
| ► | Opinion |
| ► | History |
| ► | CPAN |
| ► | Name |
| ► | Fun with Perl |
| ► | See also |
| ► | External links |
| ► | Books |
| ► | References |
~ What's Hot ~
~ Community ~
| ► | History Forum Come and discuss about History, Civilizations, Historical Events and Figures |
| ► | History Web-Ring A community of sites, blogs and forums dedicated to History. Do not hesitate to submit your site. |
and are licensed under the GNU Free Documentation License.
Lexicon - Privacy Policy - Spiritus-Temporis.com ©2005.