"An overview of the Perl Language"
It almost sound like one of those dreaded school essays that I had to write in my several attempts to get an English "O" level (they were the things that came before GCSEs) ... but these days I enjoy writing. No - this little article is one of a decreasing number that I need to write to have written at least something on every single one of the training topics and associated subjects listed on our web site. So - how would I overview Perl in a short
Perl stands for the "Practical Extraction and Reporting Language", and it's an excellent acronym for once!
Perl is - above all else - PRACTICAL if you want to write a quick piece of code to perform a task, especially if that task involves EXTRACTING information from a gob of data and REPORTING on the results. It's so practical that I can throw together in a morning a piece of code that would take me a week in C (but, mind you, I've had to spend a long time getting to know it well enough to do that). It's almost too practical at times - I can throw a piece of code together that's so quick to write and terse that I can't understand it when I come back to it a week later, which makes the maintainance of work done by others in a hurry pretty darned hard. Which is why every Perl Course
I give starts with a chapter which includes telling you how to comment (for the person who has to maintain your code) and document (for the user!).
Perl was written - or the first version was - in 1988, by Larry Wall. He was looking for a scripting language that was secure, network aware, and easy to use and as he couldn't find exactly what he needed, he wrote one. Being a US government employee at the time, he couldn't sell copies ("that would complete with private industry") but he could give copies away ... and he did, but he retained copyright and he does to this day, at the end of a very long and slack licensing system which allows it to be used for almost anything. So what is it used for?
It's used for all sort of things. I used to say 1/3 web based, 1/3 system admin and 1/3 heavy data handling, but there's much more to it that that. The safe_mysqld script is written in Perl, so is the miniserv which I can use behind the scenes on this site ... and so is the software I used for "The Horse's Mouth". When I had a crisis of access on the web server, I wrote a few lines of Perl to go back through my log files and look for certain feature ("Practical extraction and reporting") and so it goes on.
1. Never use 2 characters where one will do
2. If something looks like it could be useful, include it, even if what it does can already be achieved another way
3. Make it as 'natural' as possible - don't force strange syntaxes. "DWIM" - 'Do what I mean"!
4. Embrace technology; don't shy away from new things, but embrace them.
5. Language assumed programmer knows what (s)he is doing.
1. "C" based - operator and operand type language, semicolon statement separator, curly braces around blocks.
2. No need to declare variables (but uses sigils - $ for scalar, @ for list, % for hash & for a piece of code)
3. Automatic memory allocation; automatic creation of implicit variables (autovivification)
4. Eclectic - lots of ways of doing the same thing!
1. The basics are built in
2. Perl is distributed with lots of extra modules you can load when you need them
3. The CPAN (Comprehensive Perl Archive Network) provides many more modules - exotic ones, and those likely to be upgraded asynchronously from Perl itself
4. You can write your own shareable modules in Perl
5. You can write extra C code to build in too
6. You can used Perl as a web module
7. You can talk to a Perl program via files, sockets, shared memory, databases from any other language that supports them.
OK - you've guessed it, I'm a fan. I have a huge respect for Larry Wall, who I have hand the honour of meeting on a couple of occasions, and I am honoured to have been able to build up Well House Consultants based on Open Source Languages such as Perl. (written 2009-06-15, updated 2009-06-22)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesP251 - Perl Review 
Setting up a matrix of data (2D array) for processing in your program - (2010-10-21) 
Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl - (2010-11-11) 
Perl - a quick reminder and revision. Test yourself! - (2011-08-26) 
Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)P050 - Perl - General 
The next generation of programmer - (2004-11-13) 
New in the shops - (2005-08-01) 
How to debug a Perl program - (2006-06-04) 
Glorious (?) 12th August - what a Pe(a)rl! - (2008-08-12) 
Keeping on an even keel - (2008-11-21) 
Where do I start when writing a program? - (2009-06-11) 
Lead characters on Perl variable names - (2009-08-24) 
Learning to program in ... - (2009-11-15) 
Perl Course FAQ - (2010-04-23) 
The Perl Survey - (2010-05-27) 
Perl course - is it tailored to Linux, or Microsoft Windows? - (2010-06-25) 
Should the public sector compete with businesses? and other deep questions - (2010-09-26) 
How many toilet rolls - hotel inventory and useage - (2010-12-18) 
How much has Perl (and other languages) changed? - (2011-06-10) 
DNA to Amino Acid - a sample Perl script - (2011-06-24) 
Know Python or PHP? Want to learn Perl too? - (2012-07-31) 
Shell - Grep - Sed - Awk - Perl - Python - which to use when? - (2012-10-22) 
How well do you know Perl and / or Python? - (2012-11-04) 
Polishing the Perl courses - updated training - (2014-09-17) 
Perl - still a very effective language indeed for extracting and reporting - (2014-09-20)
Some other Articles
What difference does using the XHTML standard really make?Client side (Applet) and Server side (Servlet) Graphics in JavaWhat should a web site cost you?Changing a variable behaviour in Perl - tieingSo what is this thing called Perl that I keep harping on about?Perl references - $$var and \$var notationsHow do I query a database (MySQL)?Cornerstone Cafe, MelkshamHandling nasty characters - Perl, PHP, Python, Tcl, LuaTaking a pride in the community