Perl is a high-level programming language with an eclectic heritage written by Larry Wall and a cast of thousands.
Perl's process, file, and text manipulation facilities make it particularly well-suited for tasks involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming, networking, and web programming.
Perl derives from the ubiquitous C programming language and to a lesser extent from sed, awk, the Unix shell, and many other tools and languages.
These strengths make it especially popular with web developers and system administrators. Mathematicians, geneticists, journalists, managers and many other people also use Perl.
On this page we discuss who uses Perl, what it's good at and why you might want to use it yourself.
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.
Past training clients of Perl Training Australia include:
Other large organisations who are known to use Perl include:
A list of some Perl success stories can be found on the O'Reilly Perl success page. Why not add your own?
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.
Perl has been used for all sorts of interesting tasks, including:
Perl is, of course used for more mundane tasks as well such as:
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:
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.
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.
Unless you're interested in improving Perl you'll probably want the stable release. Both source and binary distributions are available.
To compile the source yourself, you can download Perl directly from perl.org. However if you wish a binary (executable) distribution you can download: ActiveState Perl or Strawberry Perl.
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.
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.
Copyright 2001-2013 Perl Training Australia. Contact us at firstname.lastname@example.org