
Perl training news
Next Public Course Dates
Regular Expressions from Fri, 13 Jun 08 , for 1 day Learning to Program in Perl from Mon, 7 Jul 08 , for 5 days The MySQL Database from Thu, 17 Jul 08 , for 2 days Perl for Larger Projects from Mon, 21 Jul 08 , for 3 days Perl on the Web from Mon, 21 Jul 08 , for 2 days
Link on individual courses for more details and further dates.
We can also run a private
tailored course at our centre or
a private course at your office.
|
Objects, huge data, SQL databases, XML, efficiency and other topics.
Duration: 3 days • Price: £1030.00 +VAT (with hotel room), or
£850.00 +VAT (without room), •
Venue: Melksham, Wiltshire
COURSE START DATES
| • Monday 21 July 2008 | • Monday 6 October 2008 |
Check availability / book [ Link]
This course is offered under our
options program. Early booking is recommended.
DESCRIPTION
This advanced course takes the Perl programmer through
the facilities provided in the language which make it particularly
suitable for larger projects.
We start off with a quick review of Perl programming fundamentals so
that you can ask any nagging questions you have about the core
elements of Perl. We then move on to look at documentation
standards, tools such as editors, debuggers, and modules such
as the data dumper.
Perl can handle much more than just simple lists and hashes. You'll
learn how, and you'll learn about both structured coding and objects.
By keeping your code in manageable chunks, Perl can be scaled up to
meet larger requirements. "Perl makes the difficult things easy,
and the impossible is made possible" -- Larry Wall, "Father" of Perl,
June 2001.
Perl provides a "glue" to let you interface to many different
technologies. You'll learn about standard modules supplied with
Perl, and those freely available on the CPAN. Some of these
modules, such as the SQL database interface that you can use to
connect to Oracle ... or Access ... or MySQL ... merit their own
chapter, and their own practicals.
Some users have really big and complex data sets to handle, and the
course moves on to cover regular expressions and efficiency issues,
before concluding with discussions on Perl programming standards, such as
how you should write your code to be effective, easy-to-maintain,
and easy-to-modify in the future as your requirements change.
This course covers version 5 of Perl (the current version), with footnotes
where appropriate to tell you about Perl 6. Our plans for
Perl 6 training
are described on a separate page.
PREREQUISITES
Knowledge of the Perl programming language, as taught
on our Learning to Program in Perl / Perl Programming course.
Getting the most from your Well House Consultants course
[ Link]
SUBJECT BACKGROUND
Perl is a scritping language which allows knowledgable staff to
achive a very great deal in areas as diverse as data analysis, system
managment, and web interaction very quickly indeed. For larger and more
complex requirements, Perl includes an object oriented interface which
is the subject of this course, which also covers other topics associated
with handling significantly large amounts of data, such as code efficiency
and data that overflows the space available during processing.
COURSE CONTENT
Shorter description available: [Link]
| Perl Review (module P251) For experienced Perl programmers starting on an advanced course.
The logistics.
Basic program structure.
Variables.
Operators.
The environment.
Blocks, conditionals and loops.
Regular expressions.
Lists and hashes.
Subroutines.
References.
Objects.
Special variables.
Standard modules.
Input and output. |
| Libraries and Resources (module P219) Standard Perl modules.
Pragmata - strict, integer, constants, overload and others.
Modules distributed with Perl - Benchmark, Carp, English, Data::Dumper and others.
The CPAN - sourcing, downloading and installing modules.
Useful major modules such as Tk, CGI, DBI and DBD.
XML, LWP, Win32 and other modules.
Utilities supplied with Perl - a2p s2p pod2html perldoc, etc.
Documentation - Perl manual, FAQ, etc; sources online and offline.
Websites, newsgroups, IRC and books.
Local user groups, Perl Mongers.
Getting training and support. |
| A Quick Look Ahead (module P770) Other facilities in Perl - further modules, objects, tieing.
Databases, Relational Databases, XML, XSLT and Data Munging.
Writing distributable modules.
Perl/Tk, embedding Perl in your application and your application in Perl.
Uses of Perl on a network - Web-page interaction, clients and servers.
Uses of Perl for portable system administration tasks.
Using Perl to glue other applications together (including databases). |
| Plain Old Documentation (module P306) What is POD?
POD inetrepreter programs and modules.
Own line directives.
Embedded directives.
Including POD in programs and modules. |
| Variables in Perl (module P301) Scalars, lists, hashes, code, file handles and typeglobs.
Symbol tables and accessing them.
Soft and hard references.
Undef and delete.
My and local scoping.
Strict.
References.
Multidimensional lists.
Dynamic creation of structures.
Anonymous data. |
| More about Files (module P215) Further File Enquiries.
globbing.
stat.
File locking.
Random access files.
Accessing the structure of the file system.
Including data in your programs.
write and format. |
| More than Simple Lists and Hashes! (module P217) Multidimensional arrays.
Something more complex.
Design matters. |
| Object Orientation: Individual Objects (module Q906) History - unstructured and structured code.
Introduction to object oriented programming.
Classes and methods.
Static and nonstatic.
Instances, constructors and destructors.
Overloading.
Accessing members of a class.
Loading and using classes.
Direct access to variables.
Encouraging class use. |
| Creating your own Classes (module P213) Resume - using a class.
Background to instance variables - pointers and references.
new - the constructor.
blessing.
Other methods in a class.
Using more complex structures to store data in a class.
Extended capabilities by using hashes.
AUTOLOAD. |
| Object Orientation: Composite Objects (module Q909) Review of object orientation basics.
Inheritance.
Base classes and subclasses.
Overriding and abstract classes.
Polymorphism.
Inheritance structure.
Multiple inheritance and alternatives.
Class structure.
Hierarchy and visibility.
A note on design. |
| More Objects (module P218) Where to look for modules.
Inheritance and hierarchy; base and derived classes.
Special methods BEGIN, END, DESTROY and import.
Export and Exporters. |
| Object Orientation: Design Techniques (module Q907) Overview - why design?
Some basics.
OOD, OOA, OOP.
Waterfall, spiral and Incremental models.
Informal techniques.
Micro, macro and specification.
Formal methods.
Booch, Yourdon and the OO design wars.
Unified Modeling Language (UML).
Views, diagrams, model elements and general mechanisms.
Extending UML - stereotypes, tagged values and constraints.
Functions of tools such as Rational Rose.
Drawing support, model repository, navigation, code generation.
Configuration, version control and associated tools. |
| Data Munging (module P669) Iterating over data.
Advanced regular expressions.
Map and Vec - some techniques.
Data compression within Perl. |
| Handling XML in Perl (module P668) What are XML, XSLT, DTD, Schema etc.?
Installation of modules and support libraries.
The Expat and Gnome libraries.
XML::Parser and XML::Parser::Expat.
Parser principles; styles and event-based handlers.
XML::LibXML.
Editing and rewriting XML.
XML Style Sheet transforms with XML::LibXSLT.
Case Study - a system to extract XML data and generate fixed field records. |
| Tieing (module P304) Giving variables "magic" properties.
Tieing to a scalar.
Writing your own tiescalar class.
Tieing to a hash.
Writing your own tiehash class.
Making data permanent.
Creating an appending hash.
Accessing system databases. |
| Using SQL Databases from Perl (module P308) Review - flat databases.
Relational databases through SQL.
Setting up the DBI and DBD modules.
Connecting to an SQL server.
Issuing an enquiry and reading back the results.
Amending information in a database via SQL.
Creating new tables.
Database support including mySQL, Oracle, Sybase, Infomix.
Interfacing Perl to the Access database.
Using Tie to access a table as if it was a Perl Hash. |
| Packaging Modules (module P773) Why and how to package modules.
Setting up a package structure.
Writing your package.
Writing the code, documentation, test procedures.
Updaing the README file, Makefile.PL and the change log.
Bundling your package.
Installing you package.
Testing the Install. |
| Embedding C in Perl using Xs (module P309) Hello Xs World.
Writing your Xs module.
Installing your Xs module.
Writing a Perl program to use your Xs module.
|
| Advanced File and Directory Handling (module P602) File modules and directory handling.
File locking.
Arrays of file handles.
File opening modes.
Typeglobs. sysread, syswrite, fcntl. write.
Watching the end of a file and truncating.
Binary file handling; pack, unpack and read.
Trusting files.
Pre- and post-processing.
Checking complete structures. |
| Miscellany (module P303) Checking calling sequences.
Subroutine prototypes.
caller.
Three types of goto statement.
do and continue blocks.
Command line options.
Tainted Perl.
Other special variables. |
| Perl/Tk (module P307) What is Perl/Tk?
Installing Perl/Tk.
First Perl/Tk program.
Widget types.
Packing, events and graphics.
Assigning an action to a button.
Using Tk over a network. |
| Handling Huge Data (module P667) What is a huge amount of data?
Planning.
General techniques.
Code optimisation.
Regular expressions.
Sorting.
Avoiding loops.
Storing data in memory.
"Hello Huge World".
User feedback.
Signals and tails to monitor and control a long process.
Reading the data by line or by block.
Arranging and storing the data.
Using a directory structure.
Indexing. |
| Perl 6 Look Ahead (module P256) What's new in Perl 6?
Objects with properties; memorise, constant, is and but.
Class keyword, new bless, and the . operator.
Interprollation of $(...) and @(...), and the _ operator.
Multiple comparisions and the smart comparison operator.
Golden nuggets - err, open, time, here docs etc.
Parameter lists, parameter naming and parameter autonaming.
The := binding, refs and types. Asuume bindings.
Topicalisation. Subroutine, conditional and loop changes.
try and CATCH. LAST, FIRST, PRE, POST, KEEP and UNDO.
grammars and rules.
Parrot. |
TUTOR and COURSE AUTHOR
Graham Ellis - graham@wellho.net [ email] [ about Graham]
VENUE
Melksham, Wiltshire
Public courses run at
Well House Manor - our own
purpose fitted training centre and business hotel / conference centre in
Melksham.
• Download Melksham Map - [ pdf file (750k)] • Google Map - [ Link]
PRICE
| 1 student |
2 students |
3 students |
For 4 or more students
from the same company,
please consider a private course. |
With hotel room £1030.00 (£1210.25 inc VAT) Without room £850.00 (£998.75 inc VAT) |
With hotel rooms £1960.00 (£2303.00 inc VAT) Without rooms £1600.00 (£1880.00 inc VAT) |
With hotel rooms £2890.00 (£3395.75 inc VAT) Without rooms £2350.00 (£2761.25 inc VAT) |
Notes:
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
|
FOLLOW UPS
If you're going to be using Perl through a Web interface,
you might like to consider Using Perl on the Web. If you're going to be using Perl to
connect to the MySQL database, please consider MySQL.
Other advanced material not covered on regular public courses
is available through a Perl Extra day.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the "Opentalk" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropropriate.
Certification? - [ Link]
FOR FURTHER INFORMATION
Public (scheduled) courses -- http://www.wellho.net/course/ctc.html
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Terms and Conditions -- http://www.wellho.net/net/terms.html
Covering topics such as delegate substitution, payment, cancellation policy and other matters.
|