Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
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
P251 - Perl Review
  [3007] Setting up a matrix of data (2D array) for processing in your program - (2010-10-21)
  [3042] Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl - (2010-11-11)
  [3407] Perl - a quick reminder and revision. Test yourself! - (2011-08-26)
  [3430] Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)

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

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., 2022: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2242_So- ... bout-.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb