Objects, huge data, SQL databases, XML, efficiency and other topics.
Duration: 3 days
£950.00 (VAT free from January 2019), •
Venue: Melksham, Wiltshire
COURSE START DATES
Usually scheduled to meet customer needs or run as a private course. Please email for details
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,
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.
Knowledge of the Perl programming language, as taught
on our Learning to program in Perl
Getting the most from your Well House Consultants course
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.
|Perl Review (module P251) For experienced Perl programmers starting on an advanced course.
Basic program structure.
Blocks, conditionals and loops.
Lists and hashes.
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.
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.
Dynamic creation of structures.
|More about Files (module P215) Further File Enquiries.
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.
|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.
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.
Other methods in a class.
Using more complex structures to store data in a class.
Extended capabilities by using hashes.
|Object Orientation: Composite Objects (module Q909) Review of object orientation basics.
Base classes and subclasses.
Overriding and abstract classes.
Multiple inheritance and alternatives.
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?
OOD, OOA, OOP.
Waterfall, spiral and Incremental models.
Micro, macro and specification.
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.
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.
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.
Pre- and post-processing.
Checking complete structures.
|Miscellany (module P303) Checking calling sequences.
Three types of goto statement.
do and continue blocks.
Command line options.
Other special variables.
|Perl/Tk (module P307) What is Perl/Tk?
First Perl/Tk program.
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?
Storing data in memory.
"Hello Huge World".
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.
|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.
TUTOR and COURSE AUTHOR
Graham Ellis - firstname.lastname@example.org
] [about Graham
Public courses run at
Well House Manor
- our own
purpose fitted training centre and business hotel / conference centre in
• Download Melksham Map - [pdf file (750k)
] • Google Map - [Link
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
£1160.00 (No VAT from 1.2019)
£950.00 (No VAT from 1.2019)
| With hotel rooms
£2270.00 (No VAT from 1.2019)
£1850.00 (No VAT from 1.2019)
| With hotel rooms
£3380.00 (No VAT from 1.2019)
£2750.00 (No VAT from 1.2019)
• 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.
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
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
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
Certification? - [Link
FOR FURTHER INFORMATION
Public (scheduled) courses
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
Covering topics such as delegate substitution, payment, cancellation policy and other matters.