Perl Programming with Web Development

Course

Online

Price on request

Description

  • Type

    Course

  • Methodology

    Online

A Perl training course designed cover all the basics of Perl Programming and also enable web developers to build dynamic (database-driven) e-commerce web sites using the Perl programming language, its specialist web modules and CGI (the common gateway interface).

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Web
  • Perl
  • IT
  • Programming
  • Web Development
  • IT Development

Course programme

Perl Versions

The course covers Perl 5 and has been taught to users on: Unix, Linux & MS Windows. The course has been updated to Perl 5.16.

Preparing to Learn Perl

  • About This Course
  • What is Perl?
  • Perl History
  • Perl the Language
  • Perl Programming Environment
  • Running Perl Programs
  • Running Perl Programs on Unix
  • Running Perl Programs on Windows
  • Very Basic Syntax
  • Getting Perl to Help You
  • A Sample Program
  • Online Help

Perl: the Absolute Minimum

  • Enough to Get Started
  • A module designed for complete beginners
  • The print Command
  • Variables
  • Scalars — Numbers and Strings
  • Literal Numbers
  • User Defined Constants
  • Literal Strings
  • Interpolation into Strings
  • Assignment
  • Truth in Perl
  • Comparison Operators
  • Conditional Tests
  • Comparing Values
  • A Popular Coding Error
  • Smart Matching with ~~
  • Alternative Tests
  • Multiple Tests
  • Switch Statements — given/when
  • More on given for Loops while Loops unless and until use feature & use version #

Arrays and Hashes

  • Arrays and Hashes
  • Lists
  • Writing Lists
  • Arrays — for Storing Lists
  • Using Lists and Arrays
  • Iterating Over Lists
  • Using foreach
  • The push Function
  • Indexing into Arrays
  • Hashes
  • Fat comma and hashes
  • Arrays: fat comma and hash initialising
  • Accessing Elements of a Hash
  • Hash Example
  • Iterating Over Hashes
  • Iterating Over Hashes — Example
  • Size of Arrays and Hashes

Perl: Input and Functions

  • Simple Input
  • Providing Standard Input
  • Input Example
  • Opening Files
  • Reading and Writing Files
  • Subroutines
  • Subroutine Parameters
  • Subroutine Parameters — Other Ways
  • Calling Subroutines
  • Calling Subroutines Without Arguments
  • Returning Values from Subroutines
  • Function Miscellany
  • Persistent Variables

Text Manipulation with Regular Expressions

  • Regular Expressions
  • Other Metacharacters
  • Regular Expression Examples
  • Alternation and Grouping
  • Built-in Character Classes
  • Built-in Character Class Examples
  • Matching Strings
  • Matching the Default Variable
  • Case-Sensitivity and Matching
  • Capturing
  • Regular Expression Examples
  • Substitution
  • Global Substitutions

Perl: Operators and Loops

  • Concatenating Strings
  • Fancy Assignment
  • Assignment Shortcuts
  • The Yada Yada Statement
  • Autoincrement and Autodecrement
  • Complex Conditions
  • Short-Circuit Operators
  • The Conditional Operator (Ternary Operator)
  • Logical Defined-Or //
  • Bitwise Operators
  • Operator Precedence and Associativity; Sequence Points
  • Operator Precedence and Associativity
  • Undefined Values
  • Overview of Flow Control
  • Statement Modifiers
  • Flow Control with or
  • Flow Control with and
  • More Loops
  • Loop Control — next & last
  • Example of next and last Statement redo in loops

Perl: Beyond the Basics

  • Quoting Mechanisms
  • Disambiguating Interpolation
  • Different Quote Symbols q, qq, s///, and m//
  • Quoting Lists
  • Quoting Really Big Strings
  • Changing Between Case
  • Splitting Strings into Lists
  • Joining Elements of Lists
  • Filtering Lists with map
  • Combining map and join
  • Splitting, Mapping and Rejoining
  • Using map to Initialise a Hash
  • The sort Function
  • Custom Sort Orders
  • The grep function
  • The Importance of Context
  • Arrays in Different Contexts
  • File Input in Different Contexts
  • Difference Between .. & ... Operators
  • Functions in Different Contexts
  • Providing the Right Context
  • Context Pitfalls
  • Boolean Context void Context
  • Special Variables
  • Examples of Special Variables
  • More Special Variables
  • Input and Output Special Variables
  • Scope
  • Localizing Special Variables
  • Using Command-Line Arguments
  • Options Processing

Complex Data Structures & References

  • Limits of Lists
  • Nesting Arrays
  • References in Arrays
  • Dereferencing Array References
  • Accessing a Particular Element of an Array Reference
  • Arrays of Arrays
  • The Data::Dumper
  • Flexibility of Nesting Arrays
  • Array References are Scalars
  • Array Dereferencing Syntax
  • Using the Arrow Operator
  • Creating a Reference to a Named Array
  • Passing Multiple Arrays to Functions
  • Returning Multiple Arrays from Functions
  • Hashes of Arrays
  • Hash References
  • Complex Data Structures
  • Arrays of Hashes
  • Hashes of Hashes
  • Code References
  • Invoking Code References
  • Dispatch Tables

Finding Out More for Yourself

  • So Far
  • Perl is Big
  • Look Things Up
  • Main Perl Documentation
  • Perl Doc Taxonomy
  • Functions
  • FAQs
  • Reading the FAQs
  • Searching FAQs
  • The Perl Cookbook
  • Other Perl Books
  • Perl Websites
  • Knowing What to Look for

Using Perl Modules from CPAN

  • Perl Modules
  • Using Modules
  • Standard Modules
  • CPAN Modules
  • Why Effective Perl Programmers are Efficient CPAN Users
  • Finding Modules on CPAN
  • Installing Modules
  • The cpan Command
  • Finding Installed Modules
  • Writing Perl Modules
  • Perl Module Boilerplate
  • Perl Module Boilerplate Explained
  • Defining Functions in Modules
  • Exporting Functions
  • Exporting Functions - II
  • Module Variables
  • The Exporter
  • Module Initialization
  • Versions POD Plain Old Documentation File::Copy File::Find Text::Wrap

Debugging Perl

  • Bugs
  • Avoiding Bugs
  • Perl's Built-in Debugger
  • Debugger Documentation
  • Using the Debugger
  • Debugger Commands
  • Advanced Debugger Commands
  • Other Debugger Functionality
  • Graphical Debugging ptkdb DDD
  • Komodo
  • Shunning the Debugger
  • Using warn for Debugging Carp Module
  • Printing Nested Data Structures
  • Using the Debugger as a Perl Shell
  • Unix and Linux Specific Tools
  • Run X-Windows on MS Windows for Perl on Unix/Linux

Command-Line Perl

  • General Principles
  • Quoting Command-Line Perl Programs
  • Command-Line Perl
  • Command-Line Perl Syntax
  • Using Modules
  • Using Perl as a Filter
  • Looping Through Input with -n
  • Transforming Input with -p
  • Editing Files In-Place with -i
  • Backing Up In-Place Edits
  • Other Command-Line Flags
  • Autosplit Mode
  • Example: Locale-Aware Downcasing
  • Example: grep in Perl
  • Example: Unix-Epoch Times
  • Example: Summing Input Lines
  • Example: Selecting a Range of Lines
  • Example: Find Emphasised HTML Words
  • Example: Printing Unique Input Words

A Whistle-Stop Tour of the World of Perl

  • Built-in Functions
  • General String Manipulation
  • Extracting Bits of Strings
  • Changing the Case of Letters
  • Converting Between Strings and Numbers
  • Mathematical Operations
  • Formatted Strings
  • Handling Binary Data
  • General List Manipulation
  • Adding and Removing from Arrays
  • File-System Functions
  • Idiomatic Perl Programming
  • Handy Tricks with Variables
  • Removing Duplicates
  • Formatting Text
  • Sending Email
  • Sending Email — Unix-Specific

Perl Style

  • Style Issues
  • Indentation
  • Identifier Naming
  • Naming Variables
  • Naming Functions
  • Global Variables
  • Using $_ for Readability
  • High-Level Comments
  • Low-Level Comments
  • Parentheses
  • Quoting
  • Program Logic
  • Structuring Data
  • Modelling the World
  • Object Orientation
  • Style Resources

Handling Databases with Perl

  • Interacting with SQL Databases Using Perl
  • Using DBI
  • Opening a Connection with DBI
  • Example Query
  • Running a Query
  • Retrieving Records from SELECT
  • Retrieving a Single Record
  • Retrieving All the Records at Once
  • Queries Which Don't Return Records
  • SQL Injection Attacks
  • Placeholders and Bind Values
  • Two Last Notes
  • Using ODBC
  • Opening a Connection
  • Executing Queries
  • Fetching Records
  • Reading Values from Records
  • Other ODBC Methods
  • Database Related Modules
  • Tieing Hashes to Files
  • Sample Database

Advanced File Processing

  • Opening Files
  • File open modes
  • Alternative File-Opening Syntaxes
  • Predefined File Handles
  • Redirection-Style File Opening
  • Input and Output
  • Controlling Output Formatting
  • Controlling Input Formatting
  • Reading Paragraphs
  • Reading a Whole File
  • Reading Fixed-Sized Blocks
  • The Flip-Flop Operator
  • Handling Binary Files
  • Output from Multiple Processes
  • Examining Directories
  • Examining File Metadata
  • File Test Operators
  • Symbolic Links
  • File Locks
  • Locking Files with flock

System Interaction

  • Connecting to Other Programs
  • Unsafe Pipes
  • Using IO::Pipe
  • Grabbing a Programs Output
  • Other Ways to Run Programs

Perl Security Issues

  • Writing Secure Perl
  • Taint Checking
  • Using Taint Checking
  • Dangerous Environment Variables
  • Input from Files
  • Set-User-ID Perl Programs
  • Permissions and Users

Introduction to CGI Programming

  • What is CGI?
  • A Simple CGI Program
  • Running CGI Programs on a Web Server
  • Running CGI Programs on Apache
  • Running CGI Programs on Microsofts IIS
  • Web pages with User Input
  • Form Submission & CGI Parameters
  • Parsing CGI Parameters with CGI::Lite
  • Using Here-Docs
  • Queries Using the GET Method
  • GET Query Syntax
  • Limitations of the GET Method
  • POST Queries
  • Limitations of the POST Method
  • HTML Forms
  • Checkbox Controls
  • Radio Button Controls
  • Submit Button Controls
  • Submit Image Controls
  • Creating Hyperlinks
  • URL Encoding
  • Debugging CGI Programs
  • Better Error Messages with CGI::Carp
  • Displaying Messages in the Browser
  • Running CGI Programs at the Command Line
  • A Debugging Checklist for CGI Programs
  • The CGI Module

Further CGI Programming

  • More CGI Issues
  • Accessing HTTP Information
  • HTTP Information About the Current Page
  • Serving Non-HTML Content
  • Generating Non-HTML Content
  • Client Redirection
  • HTTP Status Codes
  • Status Codes with Redirection
  • Sending Redirection Status Codes
  • Maintaining State Across Requests
  • Maintaining State with CGI Parameters
  • Cookies
  • Setting Cookies
  • Parsing Cookies
  • Using Cookies and CGI Parameters
  • Session Handling
  • Security of Session IDs
  • Generating a Secure Session ID
  • Propagating Session IDs
  • Sessions Done Easily
  • Example of Session Store
  • File Upload Forms
  • File Upload HTML
  • Receiving Uploaded Files
  • File Upload Denial-of-Service Issues
  • Limitations of CGI
  • Alternatives to CGI

Creating Web-Pages with HTML::Template

  • Creating Web-Pages
  • Using the CGI Module to Produce Web-Pages
  • Embedding Perl in HTML
  • Achieving Separation
  • A Simple HTML::Template Template
  • Advantages of HTML::Template
  • HTML Character Entities
  • Producing Lists
  • Conditionals
  • Complex Conditionals
  • Nesting Structures
  • Complex Loop Formatting
  • Loop Context Variables
  • Including Other Templates
  • Deploying HTML::Template
  • Flexibility of Using HTML::Template
  • Flexibility of Loops
  • Changing Templates Used with a Program
  • Optional Parameters
  • Permitting Optional Parameters
  • Finding Out More
  • Using HTML::Template
  • One Final Point

Creating Web-Pages with HTML::Mason

  • Why HTML::Mason ?
  • Configuring Apache
  • Apache: .mason Files Only
  • Mason: Big Picture
  • Mason: Concepts
  • Escaping Values
  • Conditional Values
  • Scripted Values
  • Formatting HTML
  • Calling in Other Components
  • Perl Code to Call in Components
  • Named Blocks <%perl> Blocks <%args> Blocks
  • Example <%args> Block
  • Using the <%args> Block
  • Component Arguments in %ARGS and @_
  • Component Arguments Via GET and POST
  • Example Decoding Arguments Via GET and POST <%once> Blocks <%init> Blocks <%cleanup> Blocks <%text> Blocks <%doc> Blocks <%flags> Blocks <%attr> Blocks
  • Autohandlers
  • Autohandler Example
  • Autohandlers for Initialisation
  • Autohandler to Open a Database
  • Dhandlers
  • Finding and Executing a Dhandler
  • Comments in Mason

Web Security Issues

  • CGI Scripts and Security
  • Putting User Input on the Web
  • Guest Book Example
  • Interpolation of Dangerous Strings
  • Removing Special Characters
  • Dangerous Strings as File names
  • Unsafe Pipes
  • Using IO::Pipe
  • The Poisoned NUL Character
  • File Uploads
  • Safe Communication with Databases
  • Permissions for CGI Programs

References

  • Interesting Web Links

Perl Programming with Web Development

Price on request