One Opinion on Perl (or Throwing Perls Before Bears)
The Virtues of Perl
-
Perl is vastly better than the UNIX "C shell" (csh)
scripting language. Unlike csh, perl is a complete
programming language, with subroutines and local variables. This
makes perl a great tool for writing system administration
scripts.
-
Although perl shares a number of features
with awk it is more powerful than awk and easier to use
for complex text processing applications.
-
For anyone who is familiar with C and UNIX, perl is easy to
pick up.
-
Since perl is an interpreted language, it has a nice
interactive feel. A change in a perl script can be immediately
tested without going through a compile and link.
-
Larry Wall, who designed and implemented perl, put it in the
public domain. Perl has been ported to 99% of the worlds
computer systems (e.g, UNIX, Windows 95 and Windows NT).
The Vices of Perl
-
The syntax and semantics of perl are quirky. Its a bit like C,
a bit like awk and a bit like csh. Then its got
associative arrays and a few other unique features thrown in. Perl has
subroutines, but it uses a bizzare argument passing convention.
-
Perl does not have types or variable declaration. Variables
are declared either in a local() statement or when they are
used. Types are inferred by use. We can assume that perl
follows C type conversion rules, but who knows. The compiler does not
do simple "use before definition" checking. As a result, the
perl compiler is of little use in catching programming errors.
-
The documentation on perl is incomplete. If the source for
perl were not in the public domain, it is unlikely that any two
implementations of perl would be the same.
-
Perl is a language for implementing quick hacks that would take
longer if implemented in C or C++. As time goes on and more people use
perl, this seems to be forgotten by some. Complex applications
are now being implemented in perl and people concern themselves
with the efficiency of perl execution.
-
Perl is an interactive language without types, type checking or
variable declaration. This may lead some people to think that it is
easier to use than languages like C or C++. In fact, the opposite is
true. Type checking and variable declaration are tools to help the
programmer catch errors at compile time. In a perl script
these errors must be caught by inspection or testing.
-
A well written Perl script is more difficult to read than
a well written C or C++ program. I think that one reason for this is
the lack of formal types and variable declaration.
Ian Kaplan - 8/96
Perl book review
Adventures with Perl
software source page
back to home page