Perl Programming with Web Development
Course
Online
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).
Reviews
Subjects
- Web
- Perl
- IT
- Programming
- Web Development
- IT Development
Course programme
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Connecting to Other Programs
- Unsafe Pipes
- Using IO::Pipe
- Grabbing a Programs Output
- Other Ways to Run Programs
- Writing Secure Perl
- Taint Checking
- Using Taint Checking
- Dangerous Environment Variables
- Input from Files
- Set-User-ID Perl Programs
- Permissions and Users
- 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
- 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
- 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
- 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
- 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
- Interesting Web Links
Perl Programming with Web Development