During courses, questions arise. "I'll get back to that" could make people feel that I'm brushing something off ... except that I explain, early on, that some questions require a great deal of background knowledge to be answered sensibly. And I keep a list of topics that I'll be getting back to on the board. The list is right by the door of the training room, and items get checked off as we go.
Here's the list that's on the board this morning, after the conclusion of a week of Perl training. I'll comment briefly on each subject so that you can get an idea of the sort of extras - the extras that
you want - that we typically cover.
modPerl is an improved through-put way of providing a web based application in Perl. As opposed to the more common CGI approach, where a program is started each time a web page is called up, the program is left running within the Web server under modPerl.
Source example and
related resources
Directory Parsing. We covered how to parse directories with struscures such as
<*> and also
opendir, readdir ... also a scheme for recursive directory parsing using a list as a queue.
Source example and
related resources
Perl's
ref function allows you to see what a scalar contains - whether it contains a reference to a hash (in which case is returns HASH), a reference to a list (ARRAY is returned) or a scalar (in which case you get SCALAR back. Although you won't want to say "what's in this variable" very often, there are times you do so when handling XML.
Source example and
related resources
CGI - the Common Gateway Interface - allows Perl code to be run very easily through a web site, even if the original logic was coded for a different environment. We looked at how code is topped and tailed to "webify" and secure it.
Source example and
related resources
Huge data and sorting. Sorting efficiency, with intermediate caching, and handling data flows that are so large they can't be stored in memory all at once.
Source example and
related resources
An Introduction to Object Oreintation in Perl. Perl's OO offers a great deal - all the things like polymorphism and even multiple inheritance are covered. You can do some unexpected things too like change the type of an object once you've created it, and use polymorphism on a list of objects that aren't even based on the same subclass.
Source example and
related resources
The Net::FTP module allows Perl to drive an FTP session in just a few calls.
Source example and
related resources
The LWP module - Library for Web Processes - was demonstrated, with a "crawler" application to visit a few pages on a remote web site, mirror them locally and report on any changes.
Source example and
related resources
And finally, we can back to look at how
Perl uses SQL via DBI and DBD modules. Actually, this is something we do on almost every Perl course, as the requirement is a routine one. The DBD and DBI are tiny droplets of 'glue' that firmly bind the two monoliths of Perl and a database such as MySQL.
Source example and
related resources
Delegate leave all switched on and lit up with Perl ... happy that we've provided answers to all the questins that they had, and prepared to extent their knowledge in their own field of work.
(written 2006-12-09)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P667 - Perl - Handling Huge Data [639] Progress bars and other dynamic reports - (2006-03-09)
[762] Huge data files - what happened earlier? - (2006-06-15)
[1397] Perl - progress bar, supressing ^C and coping with huge data flows - (2007-10-20)
[1920] Progress Bar Techniques - Perl - (2008-12-03)
[1924] Preventing ^C stopping / killing a program - Perl - (2008-12-05)
[2376] Long job - progress bar techniques (Perl) - (2009-08-26)
[2805] How are you getting on? - (2010-06-13)
[2806] Macho matching - do not do it! - (2010-06-13)
[2834] Teaching examples in Perl - third and final part - (2010-06-27)
[3374] Speeding up your Perl code - (2011-07-30)
[3375] How to interact with a Perl program while it is processing data - (2011-07-31)
P623 - Perl - Alternatives to CGIP616 - Perl - FTP and Telnet Modules [531] Packages in packages in Perl - (2005-12-16)
P602 - Perl - Advanced File and Directory Handling [839] Reporting on the 10 largest files or 10 top scores - (2006-08-20)
[1225] Perl - functions for directory handling - (2007-06-09)
[1709] There is more that one way - Perl - (2008-07-14)
[1832] Processing all files in a directory - Perl - (2008-10-11)
[1861] Reactive (dynamic) formatting in Perl - (2008-10-31)
[2876] Different perl examples - some corners I rarely explore - (2010-07-18)
[3412] Handling binary data in Perl is easy! - (2011-08-30)
[3429] Searching through all the files in or below a directory - Ruby, Tcl, Perl - (2011-09-09)
P408 - Perl - Standard Web Modules [2229] Do not re-invent the wheel - use a Perl module - (2009-06-11)
[2402] Automated Browsing in Perl - (2009-09-11)
[2416] Automating access to a page obscured behind a holding page - (2009-09-23)
[3485] Perl - retrieving and caching web resources - (2011-10-18)
[4099] Perl Dancer - a Perl Framework - Installation and first test - (2013-05-23)
[4100] Perl Dancer - from installation to your first real application - (2013-05-24)
P308 - Using SQL Databases from Perl [515] MySQL - an FAQ - (2005-12-03)
[644] Using a MySQL database from Perl - (2006-03-13)
[1224] Object Relation Mapping (ORM) - (2007-06-09)
[1885] Hiding a MySQL database behind a web page - (2008-11-15)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2381] Checking the database connection manually - (2009-08-28)
[2561] The future of MySQL - (2010-01-03)
[3099] Perl - database access - DBD, DBI and DBIx modules - (2010-12-22)
P301 - Variables in Perl [1581] What is an lvalue? (Perl, C) - (2008-03-18)
[1946] Variable Types in Perl - (2008-12-15)
[2241] Perl references - $$var and \$var notations - (2009-06-15)
[2374] Lead characters on Perl variable names - (2009-08-24)
[2877] Further more advanced Perl examples - (2010-07-19)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[3059] Object Orientation in an hour and other Perl Lectures - (2010-11-18)
[3430] Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)
[4398] Accessing variables across subroutine boundaries - Perl, Python, Java and Tcl - (2015-01-18)
[4608] Introspecion in Perl 6 - (2016-01-02)
P221 - Perl on the Web [433] FTP - how to make the right transfers - (2005-09-01)
[493] Running a Perl script within a PHP page - (2005-11-12)
[590] Danny and Donna are getting married - (2006-02-03)
[641] Simple but rugged form handling demo - (2006-03-10)
[662] An unhelpful error message from Apache httpd - (2006-03-30)
[687] Presentation, Business and Persistence layers in Perl and PHP - (2006-04-17)
[1198] From Web to Web 2 - (2007-05-21)
[2551] Perl and the Common Gateway Interface - out of fashion but still very useful? - (2009-12-26)
[3875] Using CGI and Perl to put a simple application online. Sometimes still the best way. - (2012-09-30)
P213 - Perl - Creating your own Classes [227] Bellringing and Programming and Objects and Perl - (2005-02-25)
[246] When to bless a Perl variable - (2005-03-15)
[983] Blessing in Perl / Member variable in Ruby - (2006-12-14)
[1320] Perl for Larger Projects - Object Oriented Perl - (2007-08-25)
[1435] Object Oriented Programming in Perl - Course - (2007-11-18)
[1664] Example of OO in Perl - (2008-06-03)
[1864] Object Oriented Perl - First Steps - (2008-11-01)
[1925] Introduction to Object Oriented Programming - (2008-12-06)
[2169] When should I use OO techniques? - (2009-05-11)
[2969] What does blessing a variable in Perl mean? - (2010-09-24)
[3098] Learning Object Orientation in Perl through bananas and perhaps Moose - (2010-12-21)
[3833] Learning to use existing classes in Perl - (2012-08-10)
[4607] Classes and object - first steps in Perl 6 - (2016-01-02)
Some other Articles
Empty seats, Nodding Donkeys and busesWellhouse Manor, Hotel, MelkshamMelksham and NorwichSanta at the stationAnswering ALL the delegate's Perl questionsThe last commuter train through MelkshamToo much used to SkypeBoth one team and twoWiltshire letterboxesString duplication - x in Perl, * in Python and Ruby