Contents |
|
vii | |
|
|
xviii | |
Preface |
|
xxx | |
|
Introduction to Computers, the Internet and the World Wide Web |
|
|
1 | (25) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
Evolution of Operating Systems |
|
|
5 | (1) |
|
Personal Computing, Distributed Computing and Client/Server Computing |
|
|
5 | (1) |
|
Machine Languages, Assembly Languages and High-level Languages |
|
|
6 | (1) |
|
|
7 | (1) |
|
Object-Oriented Programming |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
History of the World Wide Web |
|
|
11 | (1) |
|
|
11 | (2) |
|
|
13 | (1) |
|
General Notes About Perl and This Book |
|
|
13 | (1) |
|
|
13 | (9) |
|
Internet and World Wide Web Resources |
|
|
22 | (4) |
|
Introduction to Programming in Perl |
|
|
26 | (34) |
|
|
27 | (1) |
|
Simple Programs that Display Lines of Text |
|
|
27 | (5) |
|
A Simple Program: Printing a Line of text |
|
|
27 | (2) |
|
|
29 | (1) |
|
A Simple Program: Printing Several Lines of Text |
|
|
30 | (2) |
|
Another Simple Program: Adding Two Integers |
|
|
32 | (2) |
|
|
34 | (1) |
|
Scalar Values and Scalar Variables |
|
|
35 | (1) |
|
|
36 | (4) |
|
|
40 | (1) |
|
Increment and Decrement Operators |
|
|
41 | (2) |
|
Decision Making: Equality and Relational Operators |
|
|
43 | (4) |
|
Confusing Equality (==) and Assignment (=) Operators |
|
|
47 | (2) |
|
|
49 | (1) |
|
Numeric and String Contexts |
|
|
50 | (2) |
|
Internet and World Wide Web Resources |
|
|
52 | (8) |
|
Control Structures: Part I |
|
|
60 | (34) |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
62 | (2) |
|
if and unless Selection Structures |
|
|
64 | (3) |
|
if/else and if/elsif/else Selection Structures |
|
|
67 | (3) |
|
while and until Repetition Structures |
|
|
70 | (2) |
|
do/while and do/until Repetition Structures |
|
|
72 | (2) |
|
Formulating Algorithms: Case Study 1 (Counter-controlled Repetition) |
|
|
74 | (3) |
|
Formulating Algorithms with Top-down, Stepwise Refinement: Case Study 2 (Sentinel-controlled Repetition) |
|
|
77 | (5) |
|
Formulating Algorithms with Top-down, Stepwise Refinement: Case Study 3 (Nested Control Structures) |
|
|
82 | (4) |
|
Internet and World Wide Web Resources |
|
|
86 | (8) |
|
|
94 | (41) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
96 | (3) |
|
Creating and Manipulating an Array |
|
|
99 | (1) |
|
Repetition with the for Structure |
|
|
100 | (3) |
|
Additional Examples of Creating Arrays |
|
|
103 | (4) |
|
|
107 | (4) |
|
|
111 | (4) |
|
|
115 | (1) |
|
|
116 | (6) |
|
|
116 | (2) |
|
|
118 | (4) |
|
|
122 | (1) |
|
Creating and Manipulating a Hash |
|
|
122 | (3) |
|
|
125 | (4) |
|
Internet and World Wide Web Resources |
|
|
129 | (6) |
|
Control Structures: Part II |
|
|
135 | (35) |
|
|
136 | (1) |
|
foreach Repetition Structure |
|
|
136 | (3) |
|
|
139 | (1) |
|
Loop Control Shortcuts: grep and map |
|
|
140 | (2) |
|
Case Study: Computing Mean, Median and Mode |
|
|
142 | (4) |
|
Loop Controls: The next Statement |
|
|
146 | (1) |
|
Loop Controls: The last Statement |
|
|
147 | (1) |
|
Loop Controls: The redo Statement |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
151 | (4) |
|
Using Logical Operators for Flow Control |
|
|
155 | (2) |
|
Error Functions: die and warn |
|
|
157 | (1) |
|
Summary of Structured Programming |
|
|
158 | (12) |
|
Subroutines and Functions |
|
|
170 | (46) |
|
|
171 | (1) |
|
|
171 | (2) |
|
|
173 | (1) |
|
|
174 | (2) |
|
|
176 | (2) |
|
|
178 | (2) |
|
Other Ways to Invoke a Subroutine |
|
|
180 | (3) |
|
|
183 | (4) |
|
Example: A Game of Chance |
|
|
187 | (3) |
|
|
190 | (3) |
|
Example Using Recursion: Fibonacci |
|
|
193 | (3) |
|
|
196 | (1) |
|
Scope Rules: Global, Lexical and Dynamic |
|
|
197 | (3) |
|
Namespaces, Packages and Modules |
|
|
200 | (6) |
|
Defining a Package and Importing it with require |
|
|
200 | (3) |
|
Modules and the use Statement |
|
|
203 | (2) |
|
Other Features of the use Statement |
|
|
205 | (1) |
|
|
206 | (10) |
|
Introduction to the Common Gateway Interface (CGI) |
|
|
216 | (37) |
|
|
217 | (1) |
|
A Simple HTTP Transaction |
|
|
217 | (3) |
|
|
220 | (4) |
|
Using CGI.pm to Generate HTML |
|
|
224 | (3) |
|
Sending Input to a CGI Script |
|
|
227 | (2) |
|
Using HTML Forms to Send Input |
|
|
229 | (6) |
|
Using CGI.pm to Create Forms and Read Input |
|
|
235 | (3) |
|
|
238 | (1) |
|
Example: An Interactive Portal |
|
|
239 | (4) |
|
Internet and World Wide Web Resources |
|
|
243 | (10) |
|
|
253 | (31) |
|
|
254 | (1) |
|
|
254 | (2) |
|
Substitution Operator s/// |
|
|
256 | (1) |
|
Special Characters and Character Classes |
|
|
257 | (2) |
|
|
259 | (2) |
|
|
261 | (2) |
|
|
263 | (1) |
|
|
264 | (2) |
|
|
266 | (3) |
|
More Regular-Expression Modifiers |
|
|
269 | (1) |
|
Global Searching and the /g Modifier |
|
|
270 | (1) |
|
Example: Form Verification |
|
|
271 | (5) |
|
Internet and World Wide Web Resources |
|
|
276 | (8) |
|
|
284 | (35) |
|
|
285 | (1) |
|
Quotes and Quote Operators |
|
|
285 | (3) |
|
|
288 | (2) |
|
|
290 | (2) |
|
|
292 | (3) |
|
index and rindex Functions |
|
|
295 | (2) |
|
|
297 | (1) |
|
|
298 | (2) |
|
tr/// Translation Operator |
|
|
300 | (2) |
|
Formatting Outputs with printf and sprintf |
|
|
302 | (3) |
|
Printing with Field Widths and Precision |
|
|
305 | (2) |
|
Using Flags in the printf Format Control String |
|
|
307 | (3) |
|
Evaluating Strings as Perl Code |
|
|
310 | (9) |
|
|
319 | (26) |
|
|
320 | (1) |
|
|
320 | (2) |
|
|
322 | (1) |
|
Opening and Closing Filehandles |
|
|
323 | (2) |
|
|
325 | (2) |
|
|
327 | (1) |
|
Other Ways to Read from Files |
|
|
328 | (1) |
|
Implementing a Random-Access File |
|
|
329 | (3) |
|
Example: Web-Page Log Generator |
|
|
332 | (3) |
|
|
335 | (2) |
|
Internet and World Wide Web Resources |
|
|
337 | (8) |
|
File and Directory Manipulation |
|
|
345 | (19) |
|
|
346 | (1) |
|
|
346 | (3) |
|
|
349 | (1) |
|
|
350 | (3) |
|
Hard Links and Symbolic Links |
|
|
353 | (1) |
|
|
354 | (1) |
|
Directory Handles and Manipulation |
|
|
354 | (1) |
|
Example: Web Site Recent-Update Page |
|
|
355 | (9) |
|
|
364 | (35) |
|
|
365 | (1) |
|
Creating Formatted Reports |
|
|
365 | (3) |
|
|
368 | (2) |
|
Multiple-Line Format Fields |
|
|
370 | (3) |
|
|
373 | (4) |
|
Case Study: Outputting a Database |
|
|
377 | (3) |
|
Case Study: Web Log Analyzer |
|
|
380 | (19) |
|
|
399 | (40) |
|
|
400 | (1) |
|
|
400 | (2) |
|
|
402 | (3) |
|
|
405 | (3) |
|
|
408 | (2) |
|
References as Function Arguments |
|
|
410 | (4) |
|
|
414 | (5) |
|
Garbage Collection and Circular References |
|
|
419 | (1) |
|
|
420 | (3) |
|
|
423 | (4) |
|
|
427 | (2) |
|
|
429 | (3) |
|
Internet and World Wide Web Resources |
|
|
432 | (7) |
|
|
439 | (39) |
|
|
440 | (1) |
|
|
441 | (2) |
|
|
443 | (3) |
|
|
446 | (5) |
|
|
451 | (5) |
|
Other Class Relationships: Multiple Inheritance, Composition and Containment |
|
|
456 | (2) |
|
|
458 | (1) |
|
Encapsulation: Public vs. Private |
|
|
459 | (1) |
|
|
460 | (3) |
|
|
463 | (2) |
|
|
465 | (3) |
|
|
468 | (2) |
|
Internet and World Wide Web Resources |
|
|
470 | (8) |
|
Databases: SQL and Perl Database Interface (DBI) |
|
|
478 | (47) |
|
|
479 | (1) |
|
Relational Database Model |
|
|
480 | (1) |
|
Relational Database Overview: Employee.mdb |
|
|
481 | (1) |
|
Structured Query Language (SQL) |
|
|
482 | (9) |
|
|
483 | (1) |
|
|
484 | (2) |
|
|
486 | (2) |
|
|
488 | (1) |
|
|
489 | (1) |
|
|
490 | (1) |
|
|
491 | (1) |
|
|
491 | (3) |
|
Manipulating a Database with DBI |
|
|
494 | (4) |
|
|
498 | (10) |
|
|
508 | (1) |
|
|
508 | (10) |
|
Internet and World Wide Web Resources |
|
|
518 | (7) |
|
Session Tracking and Cookies |
|
|
525 | (34) |
|
|
526 | (1) |
|
|
526 | (1) |
|
|
526 | (1) |
|
|
527 | (4) |
|
|
531 | (3) |
|
|
534 | (4) |
|
|
538 | (4) |
|
|
542 | (17) |
|
Web Automation and Networking |
|
|
559 | (29) |
|
|
560 | (1) |
|
|
560 | (1) |
|
|
561 | (3) |
|
|
564 | (1) |
|
|
565 | (2) |
|
Introduction to Advanced Networking |
|
|
567 | (1) |
|
|
568 | (1) |
|
Transport Control Protocol (TCP) |
|
|
568 | (4) |
|
Simple Mail Transfer Protocol (SMTP) |
|
|
572 | (3) |
|
Post Office Protocol (POP) |
|
|
575 | (4) |
|
Searching the World Wide Web |
|
|
579 | (9) |
|
|
588 | (27) |
|
|
589 | (1) |
|
|
590 | (4) |
|
The system and exec functions |
|
|
594 | (3) |
|
Controlling the Input and Output of Processes |
|
|
597 | (4) |
|
Communicating Between Processes |
|
|
601 | (3) |
|
|
604 | (2) |
|
|
606 | (2) |
|
|
608 | (7) |
|
|
615 | (69) |
|
|
616 | (1) |
|
What Makes a Program Insecure |
|
|
617 | (1) |
|
Using User Data with Shell Commands |
|
|
618 | (4) |
|
|
622 | (2) |
|
|
624 | (2) |
|
Printing User Input to a Web Page |
|
|
626 | (6) |
|
Denial-of-Service Attacks |
|
|
632 | (3) |
|
|
635 | (3) |
|
|
638 | (6) |
|
Introduction to Cryptography Theory |
|
|
644 | (1) |
|
|
645 | (4) |
|
|
649 | (2) |
|
|
651 | (3) |
|
|
654 | (1) |
|
|
654 | (1) |
|
|
655 | (1) |
|
Public-Key Infrastructure, Certificates and Certification Authorities |
|
|
656 | (2) |
|
|
658 | (1) |
|
|
659 | (2) |
|
Secure Sockets Layer (SSL) |
|
|
659 | (1) |
|
Secure Electronic Transaction™ (Set™) |
|
|
660 | (1) |
|
|
661 | (2) |
|
|
661 | (1) |
|
|
662 | (1) |
|
|
663 | (1) |
|
|
663 | (2) |
|
Internet and World Wide Web Resources |
|
|
665 | (19) |
|
|
684 | (37) |
|
|
685 | (1) |
|
Self-referential Structures |
|
|
685 | (1) |
|
|
686 | (10) |
|
|
696 | (5) |
|
|
701 | (3) |
|
|
704 | (7) |
|
|
711 | (10) |
|
|
721 | (22) |
|
|
722 | (1) |
|
GD Module: Creating Simple Shapes |
|
|
722 | (3) |
|
GD Module: Image Manipulation |
|
|
725 | (1) |
|
|
726 | (2) |
|
|
728 | (1) |
|
|
728 | (2) |
|
|
730 | (4) |
|
Tk Case Study: A GUI Application |
|
|
734 | (9) |
|
Extensible Markup Language (XML) |
|
|
743 | (66) |
|
|
744 | (1) |
|
|
745 | (1) |
|
|
746 | (6) |
|
|
752 | (2) |
|
Document Type Definitions (DTD) and Schema |
|
|
754 | (5) |
|
Document Type Definitions |
|
|
754 | (2) |
|
|
756 | (3) |
|
Customized Markup Languages |
|
|
759 | (3) |
|
|
760 | (1) |
|
|
761 | (1) |
|
|
762 | (1) |
|
|
762 | (1) |
|
|
762 | (1) |
|
|
762 | (1) |
|
Document Object Model (DOM) |
|
|
762 | (2) |
|
|
764 | (5) |
|
|
769 | (3) |
|
|
772 | (1) |
|
Parsing XML with XML::Parser |
|
|
773 | (4) |
|
|
777 | (1) |
|
Extensible Style Language (XSL) |
|
|
777 | (5) |
|
|
782 | (2) |
|
Case Study: Message Forums with Perl and XML |
|
|
784 | (16) |
|
Displaying the Forums using XML::Parser |
|
|
785 | (4) |
|
Using XML::DOM to Add Forums and Messages |
|
|
789 | (3) |
|
Alterations for Non-XSL Browsers |
|
|
792 | (8) |
|
Internet and World Wide Web' Resources |
|
|
800 | (9) |
|
|
809 | (26) |
|
|
810 | (1) |
|
Providing Alternatives for Multimedia Content |
|
|
810 | (9) |
|
Maximizing Readability by Focusing on Structure |
|
|
819 | (1) |
|
Accessibility in HTML Tables |
|
|
820 | (3) |
|
Accessibility in HTML Frames |
|
|
823 | (1) |
|
Using Voice Synthesis and Recognition with VoiceXML™ |
|
|
823 | (4) |
|
|
827 | (1) |
|
Other Accessibility Tools |
|
|
828 | (1) |
|
Internet and World Wide Web Resources |
|
|
828 | (7) |
|
Bonus: Introduction to HyperText Markup Language 4: Part I |
|
|
835 | (23) |
|
|
836 | (1) |
|
|
836 | (1) |
|
|
837 | (1) |
|
|
837 | (3) |
|
|
840 | (1) |
|
|
841 | (3) |
|
|
844 | (3) |
|
Special Characters and More Line Breaks |
|
|
847 | (2) |
|
|
849 | (1) |
|
|
850 | (3) |
|
Internet and World Wide Web Resources |
|
|
853 | (5) |
|
Bonus: Introduction to HyperText Markup Language 4: Part II |
|
|
858 | (33) |
|
|
859 | (1) |
|
|
859 | (3) |
|
Intermediate HTML Tables and Formatting |
|
|
862 | (2) |
|
|
864 | (3) |
|
|
867 | (7) |
|
|
874 | (2) |
|
Creating and Using Image Maps |
|
|
876 | (3) |
|
|
879 | (1) |
|
|
880 | (2) |
|
|
882 | (2) |
|
Internet and World Wide Web Resources |
|
|
884 | (7) |
|
Bonus: Cascading Style Sheets™ (CSS) |
|
|
891 | (32) |
|
|
892 | (1) |
|
|
892 | (1) |
|
Creating Style Sheets with the style Element |
|
|
893 | (3) |
|
|
896 | (3) |
|
Linking External Style Sheets |
|
|
899 | (2) |
|
|
901 | (3) |
|
|
904 | (3) |
|
|
907 | (2) |
|
Text Flow and the Box Model |
|
|
909 | (5) |
|
|
914 | (4) |
|
Internet and World Wide Web Resources |
|
|
918 | (5) |
|
Bonus: Introduction to Python Programming |
|
|
923 | (62) |
|
|
924 | (2) |
|
|
925 | (1) |
|
|
926 | (1) |
|
Basic Data Types, Control Structures and Functions |
|
|
926 | (5) |
|
Tuples, Lists and Dictionaries |
|
|
931 | (5) |
|
String Processing and Regular Expressions |
|
|
936 | (5) |
|
|
941 | (2) |
|
Introduction to CGI programming |
|
|
943 | (2) |
|
Form Processing and Business Logic |
|
|
945 | (6) |
|
|
951 | (5) |
|
Database Application Programming Interface (DB-API) |
|
|
956 | (4) |
|
|
956 | (1) |
|
|
956 | (4) |
|
Object-Oriented Programming |
|
|
960 | (2) |
|
Case Study: GUI Database Application |
|
|
962 | (12) |
|
|
962 | (1) |
|
|
963 | (1) |
|
|
963 | (1) |
|
GUI Database Viewer Implementation |
|
|
964 | (10) |
|
Operator Precedence Chart |
|
|
974 | (1) |
|
Internet and World Wide Web Resources |
|
|
975 | (10) |
A HTML Special Characters |
|
985 | (1) |
B HTML Colors |
|
986 | (3) |
C ASCII Character Set |
|
989 | (1) |
D Operator Precedence Chart |
|
990 | (3) |
E Number Systems |
|
993 | (13) |
|
|
994 | (3) |
|
E.2 Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers |
|
|
997 | (1) |
|
E.3 Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers |
|
|
998 | (1) |
|
E.4 Converting from Binary, Octal, or Hexadecimal to Decimal |
|
|
998 | (1) |
|
E.5 Converting from Decimal to Binary, Octal, or Hexadecimal |
|
|
999 | (1) |
|
E.6 Negative Binary Numbers: Two's Complement Notation |
|
|
1000 | (6) |
F Career Resources |
|
1006 | (18) |
|
|
1007 | (1) |
|
F.2 Online Career Services |
|
|
1008 | (2) |
|
F.3 Career Opportunities for Employees |
|
|
1010 | (4) |
|
F.3.1 Comprehensive Career Sites |
|
|
1010 | (1) |
|
F.3.2 Technical Positions |
|
|
1010 | (1) |
|
|
1011 | (1) |
|
F.3.4 Executive Positions |
|
|
1012 | (1) |
|
F.3.5 Students and Young Professionals |
|
|
1012 | (1) |
|
F.3.6 Other Online Career Services |
|
|
1013 | (1) |
|
F.4 Online Opportunities for Employers |
|
|
1014 | (3) |
|
F.4.1 Posting Jobs Online |
|
|
1014 | (1) |
|
F.4.2 Diversity in the Workplace |
|
|
1015 | (1) |
|
F.4.3 Recruiting Services |
|
|
1016 | (1) |
|
F.4.4 Testing Potential Employees Online |
|
|
1017 | (1) |
|
F.5 Internet and World Wide Web Resources |
|
|
1017 | (7) |
G Perl 6 Web Resources |
|
1024 | (3) |
|
|
1024 | (1) |
|
|
1024 | (1) |
|
G.3 Internet and World Wide Web Resources |
|
|
1025 | (2) |
Bibliography |
|
1027 | (2) |
Index |
|
1029 | |