Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Retiring, March 2020 - sorry, you have missed our final public course.
The Coronavirus situation has lead us to suspend public training - which was on the cards anyway, with no plans to resume

Please ask about private 'maintenance' training for Python, Tcl, Perl, PHP, Lua, etc
Happily continuing private consultancy / programming work
So what is this thing called Perl that I keep harping on about?

"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 article?

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 articles
P050 - Perl - General
  [4301] Perl - still a very effective language indeed for extracting and reporting - (2014-09-20)
  [4296] Polishing the Perl courses - updated training - (2014-09-17)
  [3911] How well do you know Perl and / or Python? - (2012-11-04)
  [3902] Shell - Grep - Sed - Awk - Perl - Python - which to use when? - (2012-10-22)
  [3823] Know Python or PHP? Want to learn Perl too? - (2012-07-31)
  [3407] Perl - a quick reminder and revision. Test yourself! - (2011-08-26)
  [3332] DNA to Amino Acid - a sample Perl script - (2011-06-24)
  [3322] How much has Perl (and other languages) changed? - (2011-06-10)
  [3093] How many toilet rolls - hotel inventory and useage - (2010-12-18)
  [2971] Should the public sector compete with businesses? and other deep questions - (2010-09-26)
  [2825] Perl course - is it tailored to Linux, or Microsoft Windows? - (2010-06-25)
  [2783] The Perl Survey - (2010-05-27)
  [2736] Perl Course FAQ - (2010-04-23)
  [2504] Learning to program in ... - (2009-11-15)
  [2374] Lead characters on Perl variable names - (2009-08-24)
  [2228] Where do I start when writing a program? - (2009-06-11)
  [1897] Keeping on an even keel - (2008-11-21)
  [1750] Glorious (?) 12th August - what a Pe(a)rl! - (2008-08-12)
  [743] How to debug a Perl program - (2006-06-04)
  [400] New in the shops - (2005-08-01)
  [116] The next generation of programmer - (2004-11-13)

P251 - Perl Review
  [3430] Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)
  [3042] Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl - (2010-11-11)
  [3007] Setting up a matrix of data (2D array) for processing in your program - (2010-10-21)

Back to
Perl references - $$var and \$var notations
Previous and next
Horse's mouth home
Forward to
Changing a variable behaviour in Perl - tieing
Some other Articles
What difference does using the XHTML standard really make?
Client side (Applet) and Server side (Servlet) Graphics in Java
What should a web site cost you?
Changing a variable behaviour in Perl - tieing
So what is this thing called Perl that I keep harping on about?
Perl references - $$var and \$var notations
How do I query a database (MySQL)?
Cornerstone Cafe, Melksham
Handling nasty characters - Perl, PHP, Python, Tcl, Lua
Taking a pride in the community
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2020: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2242_So- ... bout-.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat