Title: Perl and CGI Programming
1Guide To UNIX Using Linux Third Edition
- Chapter 9
- Perl and CGI Programming
2Objectives
- Understand the basics of the Perl language
- Identify and use data types in Perl scripts
- Understand differences between the Awk program
and Perl programming
3Objectives (continued)
- Access disk files in Perl
- Use Perl to sort information
- Set up a simple HTML Web page
- Understand how Perl and CGI are used for creating
Web pages
4Introduction to Perl
Perl contains features found in other languages
it is very similar to C and also contains
features found in Awk and shell programs
5Introduction to Perl (continued)
Perl can be directed to read its input from the
keyboard
6Introduction to Perl (continued)
Perl uses decision structures such as if
statements to control program flow
7Introduction to Perl (continued)
8Introduction to Perl (continued)
9Identifying Data Types
- Data may be represented in Perl in a variety of
ways - Variables and constants
- Scalars
- Numbers
- Strings
- Arrays
- Hashes
10Variables and Constants
- Variables and constants are symbolic names that
represent values stored in memory - The value of a variable can change while the
program runs - The value of a constant does not change while the
program runs
11Scalars
- Scalars are simple variables that hold a number
or a string - A string is any nonnumeric sequence of characters
(including numbers treated as characters) - Scalar variable names begin with a dollar sign
()
12Numbers
- Numbers are stored as either signed integers, or
as double-precision floating-point values - Numeric literals can be either integers or
floating-point values - Perl uses an added convention with numeric
literals to improve legibility the underscore
character (_)
13Strings
- Sequences of any types of characters
- Often used for logical analysis, sorts, or
searches - String literals are usually delimited by either
single () or double quotes () - To put control and escape characters into
strings, need to use \ notation, e.g., \n is a
newline character
14Strings (continued)
15Strings (continued)
The use of special codes determined the output of
this Perl script
16Arrays
- Variables that store an ordered list of scalar
values accessed with numeric subscripts - An at sign (_at_) precedes the name of an array when
assigning it values - Use the dollar sign () when processing the
individual elements of an array - Subscripts are zero-based
17Hashes
- Variables that represent key/value pairs
- A percent sign () precedes the name of a hash
variable when assigning it a value - Use the dollar sign () to refer to a single
element of a hash
18Perl versus the Awk Program
This Awk program counts comment lines in a file.
Awk doesnt use while-type statements for looping.
19How Perl Accesses Disk Files
- Perl uses filehandles to reference files
- A filehandle is the name for an I/O connection
between Perl and the OS - Used to open, read, write, and close a file
- 3 standard filehandles STDIN, STDOUT, STDERR
20How Perl Accesses Disk Files (continued)
- Can open a file
- With an explicit open statement
- By providing the file name at the command line
(storing it in ARGV0) - Should always check for failure or EOF when
opening a file
21How Perl Accesses Disk Files (continued)
Perl can access a file by passing the filename on
the command line
22Using Perl to Sort
- Perl has a powerful sort operator
- Can sort strings or numbers
- Can sort in ascending or descending order
- Advanced sorting operations allow you to define
your own sorting routine
23Using Perl to Sort Alphanumeric Fields
You can sort words in a Perl program into
alphabetical order using the sort function
24Using Perl to Sort Numeric Fields
You can sort numeric fields in a Perl program by
using a sort subroutine
25Setting Up a Web Page
- Web pages can be created using HTML (Hypertext
markup Language) - HTML is a format for creating documents with
embedded tags - Tags give the document special properties when it
is viewed in a Web browser
26Setting Up a Web Page (continued)
- Hyperlinks load another document into the browser
when clicked - Web pages are published on a web server
- Apache is a common Web server software
- Linux has a loopback networking feature
- Lets you access your own system as if it were an
external network - Useful for testing Web pages before publishing
27Creating a Simple Web Page
- Two ways to create HTML documents
- Typing the text and desired embedded tags
- Using a visual HTML editor
- Two main parts to HTML code
- Head contains the title, which appears on the top
bar of the browser window - Body defines what appears in the browser window
28Creating a Simple Web Page (continued)
An HTML document viewed in Mozilla
29CGI Overview
- CGI (Common Gateway Interface) is a protocol, or
set of rules, governing how browsers and servers
communicate - Scripts that send or receive information from a
server need to follow the CGI protocol - Perl is the most commonly used language for CGI
programming
30CGI Overview (continued)
- Perl scripts are written to get, process, and
return information through Web pages (dynamic
pages) - Main objects in dynamic Web pages are forms that
allow you to collect input data from a Web page
and send it to a server
31CGI Overview (continued)
This Web page contains a form that collects
information from a user to submit to a server via
CGI
32Chapter Summary
- Perl is a interpreted scripting language that can
be combined with CGI to create interactive Web
pages - Perl blends features found in C, Awk, and shell
programs - Perl includes
- An if-else statement as a decision structure
- Numeric and string relational operators
- Arithmetic operators
33Chapter Summary
- Perls data types include numbers, strings,
arrays, and hashes - Perl and Awk are both good for applications
requiring pattern matching - Unlike Awk, Perl includes an explicit while
looping structure - Perl includes a powerful sort feature
34Chapter Summary
- Web pages are created using Hypertext Markup
Language (HTML) - An HTML document contains embedded tags that
specify document properties and links to other
pages - CGI is a protocol or set of rules governing how
browsers and servers communicate