Originaly from 100 Reasons for Perl.
- Perl is free. Unlike C/C++ compilers and other tools that cost as
much as $3,000.00 per user license, Perl is downloadable
from the internet.
- Perl is interpreted. This eliminates repeated compile and link steps.
- Perl programs are text files. This means that they are human readable,
and very small compared to compiled programs.
- Perl is fast. For intense data manipulation, I have tested Perl at
three times the speed of C doing the same thing. Strange, because Perl
is created in C, but it's true. Though this wouldn't be true for every
kind of program, this beats the heck out of the " ...interpreted
languages are slow..." lie propagated by C and Assembler programmers.
- Perl is easy to learn. It is similar to C, so it is a cinch for C
programmers to learn; but it has only a fraction of the rules that C
has, so it's easy for anyone to learn.
- Perl variables are variables. They store data, no matter what kind.
There are not ints or floats or lpszs or pointers
to pointers to arrays of null-terminated character arrays.
- Perl handles data type translations automatically.
- Perl doesn't crash. Once a Perl program has been compiled into its
bytecode and is running, it's almost impossible to do something stupid
enough to make a program halt. It is impossible to crash the
system... at least, it's never happened to me.
- Perl has "no arbitrary limits". In fact, this is one of its
primary selling points straight out of the books. There is no max-int.
No limit to recursion or nesting. If you code it, Perl will run it.
- Perl guesses well. I couldn't begin to guess at the number of times
when I've guessed at Perl grammar, only to have the program do exactly
what I wanted it to do anyway. I've made up the structures, and
Perl figured it out. Heh, try THAT in C!!!
- Perl has strings. That alone should make a C or C++ programmer want
to give up make and come on over to some real programming
for a change.
- It is impossible to go out of array bounds in Perl.
- Perl strings are not arrays. They are just variables, like they should
be. The NULL is just a character, not a requirement for correctly terminating
an array of characters used to prevent the corruption of memory and
the rebooting of the operating system.
- Perl is cross-platform. It has been ported to every operating system
I've ever heard of. This is a claim that JAVA may never be able to make.
- Perl has lists and hashes as basic data types. This gives the power
to do real programming without the overhead of coding hundreds of lines
just to get it ready to start.
- Perl's lists and hashes can be nested to an unlimited degree to create
any imaginable type of data structure.
- Perl is supported and controlled directly by the user community,
not by a committee of people who like to keep things like they were
when they first started programming back in the 50's. Perl can improve
naturally, unlike C.
- Perl is, basically, the brainchild of a person. It is not an accidental
collection of functions and header files that just by chance happened
to get called (collectively) "C" and later became an official language.
Perl was planned in advance, not just hodgepodged together willy-nilly.
- Perl was created by a linguist, not a binary-brained collection of
computer geeks. This means it reads like poetry... in fact, Perl can
be made into poetry that actually parses and runs.
- Perl doesn't take the fun out of programming. It lets a programmer
concentrate on algorythms and solving problems, not on worrying about
- Perl has the most powerful regular expression features I've ever
seen. Text search and replacement is what Perl does best.
- Unlike other interpreted languages like Visual Basic, that have to
handle character-by-character searches and replacements, Perl's regular
expression text manipulation is handled internally (as the result of
a single instruction) by super-optimized code. This is part of the reason
why it's so fast.
- Perl has a huge installed base, and is still growing. Since it was
only recently fully ported to Microsoft Windows, it hasn't had time
to catch on here, but believe me, brother, it will.
- Perl is easily obfuscated. That makes for some interesting geekish
- Perl grammar is totally flexible, even more so than C. In the hands
of experienced programmers, this makes programs even easier to
- Perl is easy enough, but complete enough, to stay with a programmer
as he advances from his first line of code to his millionth. In other
words, it's simple enough for a one-line "Hello World" program, but
robust enough to create event-driven, windows-based, internet applications.
- Perl is the language of CGI. This makes it a given throughout the
- Whether or not JAVA fans want to admit it, Perl has a tremendous
margin of install- and user base over JAVA.
- Perl can do everything JAVA can do, just much easier.
- Perl programs are often considered art. This is because Perl
lends easily to free expression and total creativity.
- Perl does windows like C wants to. Using the Tk module, windows programs
are as easy to build in Perl as they are in Java, VB, or Delphi.
- Perl is excellent as a system, network, or internet scripting language.
(DOS users: scripts are super-powered batch files on UNIX.)
- Perl is an excellent server configuration tool. For example, creating
1000 new users in 10 seconds with a 10-line script.
- Unlike C, the rules for Perl don't change much from one type of machine
or from one operating system to another.
- Perl is extremely well documented throughout the internet, in an
increasing number of at the local mom-and-pop bookstore, and in standard
UNIX and LINUX distribution.
- The general rule is: 1 line of Perl equals between 10 and 500 lines
of C. This is in how long it takes to code, how hard it is, how much
there is to keep track of, how many variables are needed, and how many
programmers quit because of bandaided C shit-code they have to maintain.
- Perl programs generally are shorter than 500 lines long. This is
partly, I admit, from the types of jobs Perl is usually used for; but
mostly because of how much easier and intuitive it is
to program in Perl.
- It is otay to program Perl intoxicatedly. It still works fine, just
looks a little topsy-turvy the morning after.
- It is otay to program Perl while mentally or physically ill. It just
looks like C code the morning after.
- It is otay to program Perl while under the influence of hallucinogenics.
It just looks a little like a Picasso painting the morning after, and
may be shaped like a choochoo train.
- It is not otay to program Perl totally sober. It ends up looking
like a cross between assembler and C. Just kidding.
- The nature of Perl as it is, a programmer doesn't get as moody getting
last minute changes... they're just a change in a single line of code.
(Just don't tell the end users that.)
- The nature of Perl as it is, a programmer doesn't mind a little unpaid
overtime to finish a huge project. It's only five or ten minutes of
extra coding for that list of lists of lists of hashes of lists of hashes
of hashes of lists of hashes of scalars. (No joke. I programmed that
- Perl does data processing. C can't say that. VB can't say that. Delphi
can't say that. With those languages you have to dummy up data processing
with their extremely limited DP functionality. I say again, it's 1 line
of perl to 10 - 500 lines of C. VB and Delphi are almost that bad, especially