Who uses Perl?

There's a great myth out there that no one uses Perl. This is because Perl
tends to be a great stealth tool, being used in organisations where it's needed
with or without official approval. The truth is that there are a great many Perl books being sold, and these books are being
sold to Perl programmers. Of course, our courses sell very well too, so we're
even more certain that Perl is alive and well.

What can I do in Perl?

The easy answer is everything.

Although that's not quite true... you can't change the weather with Perl yet.

Perl excels at text processing, CGI programming, interfacing with databases,
low-level applications, high-level applications, GUI applications, simple tasks,
complex tasks, small and major projects. Perl has been called the system
administrator's best friend for its ability to make common tasks easy.

For a long time Perl was called the duct tape of the Internet, and
although it has more competitors in the CGI field than it used to, many
programmers still choose to code their web applications in Perl. Perl's
templating systems and powerful regular expression engine make it a great CGI
language. But above all, the embedded Perl interpretor for Apache; mod_perl and the powerful component-based
architecture of Catalyst makes Perl especially suited to this environment.

Perl has always been more than a CGI programming language. Perl can be used for
image creation and manipulation, networking via telnet, ssh or ftp
(and others), graphical user interface creation, robotics, bio-informatics,
VLSI electronics and to create mail filters to minimise spam.

There isn't a lot you can't do in Perl. Perl is object oriented and supports
inheritance, multiple inheritance, diamond inheritance, polymorphism and
encapsulation if you want it to. There's no boundary between regular Perl and
object oriented Perl, it's all just Perl.

Perl has extra modules which allow you to write (or use code written in) Python,
PHP, Java, C, C++, Basic, Ruby, Awk, assembler, PDL, TCL, Octave, Guile, S-Lang,
Befung and Lua in your Perl script. This means that you can use Perl in
conjunction with these other programming languages rather than having to rewrite
existing code.

Why would I use Perl?

Perl is a stable, cross platform programming language used for mission critical
projects in the public and private sectors. It's been around since 1987 and
will be around for many more years.

Perl is a high level language designed to be fast to write and fast to run.
Since Perl takes care of the low level things, like memory management, your
programmers have more time to spend on making things work. Using Perl will help
your programmers avoid buffer overflows and off-by-one errors. Perl also has a
great security feature called "taint" which (when turned on) prevents
programmers from doing unwise things with data from outside the program before
it has been checked.

Perl is made up of the best features from many other languages including C, awk,
sed, bash, COBOL, Lisp, Ada, Python and BASIC-PLUS. These have been combined
into a powerful language which makes simple things easy and hard things
possible. Perl can integrate with most modern databases, work with HTML, XML
and other mark-up languages, and has full support for unicode.

Perl is fast and efficient. It comes with a huge amount of built-in
functionality to allow you to do everything from direct string manipulation to
web programming. Perl is type-friendly and its native hash type makes it easy
to come up with algorithmically efficient answers to problems. Perl's regular
expression engine has set the standard for most modern programming languages and
is both extremely powerful and highly optimised for speed.

Perl has a large and friendly community. This means that there are plenty of
good code examples available and many online forums for questions and answers,
discussions of best practices and other important resources.

To top all of that off, there's the Comprehensive
Perl Archive Network (CPAN) which provides thousands of third party
modules which are freely available to help you do everything from A to Z.
In the mid-2000s this archive was at 1 Billion Australian dollars.
Popular modules include:

DBIx::Class which provides Perl
with an object oriented interface to most modern databases,

Date::Manip
which can be used for testing whether given dates are holidays or workdays and
to convert between many date formats.

Perl is open source software, amongst other things this means that bugs are
spotted and fixed quickly. Of course, it also means that you're welcome
to have a shot at fixing any bugs you find yourself. Using Perl you're not tied
to any one vendor or platform. Perl will continue to be supported so long as
it is in use.

Where can I get Perl?

Unix and Unix-like operating systems

Perl often comes installed as standard with many Unix and Unix-like operating
systems. If it hasn't been installed with your machine, check whether it is
included in the packaging system. Failing this you can download Perl directly
from perl.org.

Microsoft Windows and Microsoft NT

Apple Macintosh

Perl is included in the default installs of OS X 10.3 and above. Alternately you can also use ActiveState's Perl or
build from source.

How can I add to this page?

If you spot any errors on this page, or anything that should be updated please
don't hesitate to contact us. If
you have a new and exciting use for Perl that you think people might like to
know about let us know and we can add it in.

This advocacy page remains a work in progress. We love Perl and we hope you'll
like it too.