![]() | ![]() | ![]() |
(page 18--see Scalars Chapter)
page | section | HTML | Perl |
38 | Creating Output for a Browser | animal.html | animal.cgi |
39 | Documenting Your Script | comments.html comments_inline.html |
comments.cgi comments_inline.cgi |
40 | Checking the ScriptÕs Syntax | -- | badmonkey.cgi |
(no examples)
page | section | HTML | Perl |
51 | What About CGI.pm? | -- | getversion.cgi |
58 | Testing Your Unix Server | -- | unixtest.cgi |
page | section | HTML | Perl |
66 | Testing Your Server (Part 1) | test.html | none |
69 | Installing Scripts on Windows Servers | -- | perltest.pl |
70 | Testing Your Server (Part II) | -- | perltest.pl |
page | section | HTML | Perl |
77 | Testing the Server (Part 1) | test.html | none |
81 | Testing Your Server (Part II) | -- | test.cgi |
page | section | HTML | Perl |
84 | Labeling Incoming Data | namevalue.html | (namevalue.cgi) |
86-94 | Creating a Form | namevalue.html | (namevalue.cgi) |
95 | Using an Image To Submit Data | zonemap.html | (display_param.cgi) |
96 | Creating a Link to a Script | gettime.html | (gettime.cgi) |
97 | Using a Link to Input Data to a Script | getlocaltime.html | (getlocaltime.cgi) |
page | section | HTML | Perl |
100 | Your VisitorÕs Browser and Platform | browser.cgi | |
101 | Viewing Available Environment Variables | envlist.cgi | |
102 | Storing Data from Environment Variables | storeenv.cgi |
page | section | HTML | Perl |
104 | Getting Single-Valued Form Data | singlevalue.html | singlevalue.cgi |
105 | Getting Multiple-Valued Form Data | multivalue.html | multivalue.cgi |
106 | Getting All the Form ElementÕs Names | allnames.html | allnames.cgi |
107 | Getting All the Names and Values | alldata.html | alldata.cgi |
page | section | HTML | Perl |
110-111 | Assigning a Value to a Scalar Variable | assignment.cgi assignment_declaration.cgi |
|
112 | Multiplying, Dividing, Adding, Subtracting | math.html | math.cgi |
113 | Using More Than One Operator | precedence.cgi | |
114 | Raising a Number to an Exponential Power | exponents.html | exponents.cgi |
115 | Using Mathematical Functions | sqrt.html | sqrt.cgi |
116 | Getting the Remainder of a Division | modulus.html | modulus.cgi |
117 | Connecting Strings Together | concat.html | concat.cgi |
118 | Repeating a String | repeat.html | repeat.cgi |
119 | Operating and Assigning in One Step | binary.html | binary.cgi |
120 | Incrementing (or Decrementing) a Variable | increment.html | increment.cgi |
page | section | HTML | Perl |
126 | Creating a Basic Conditional Statement | if.html | if.cgi |
127 | Adding Options for False Conditions | else.html | else.cgi |
128 | Adding Multiple, Independent Conditions | elsif.html | elsif.cgi |
129 | Using Unless | unless.html | unless.cgi |
130 | Repeating a Block for Each Item in an Array | foreach.html | foreach.cgi |
131 | Loading the Default Variable | foreach_default.html | foreach_default.cgi |
132 | Repeating a Block While a Condition Is True | while.html | while.cgi |
133 | Repeating a Block While a Condition Is False | until.html | until.cgi |
134 | Executing the Block at Least Once | dowhile.html | dowhile.cgi |
135 | Repeating a Block a Given Number of Times | for.html | for.cgi |
136 | Nesting Conditional Statements | nest.html | nest.cgi |
137 | Skipping a Loop Iteration | next.html | next.cgi |
138 | Jumping out of a Loop Altogether | last.html | last.cgi |
page | section | HTML | Perl |
140-141 | Assigning a List to an Array Variable | assign.cgi assign_time.cgi |
|
142-143 | Referring to a Particular Item in an Array | gettingone.html |
gettingone.cgi |
144 | Referring to Multiple Items from an Array | getmulti.html | getmulti.cgi |
145 | Adding or Replacing an Item in an Array | replaceone.html | replaceone.cgi |
146-147 | Adding to the End or Beginning of an Array |
push.cgi unshift.cgi |
|
148 | Removing the Last Item from an Array | pop.html | pop.cgi |
149 | Removing the First Item from an Array | shift.html | shift.cgi |
150-151 | Replacing More Than One Item in an Array | replacemore.html | replacemore.cgi |
152 | Finding the Length of an Array | length.html | length.cgi |
153 | Modifying All the Members of an Array | modifyall.html | modifyall.cgi |
154 | Sorting Arrays | sort.html | sort.cgi |
155 | Reversing the Order of an ArrayÕs Contents | reverse.html | reverse.cgi |
page | section | HTML | Perl |
159 | Using a Simple Subroutine | simple_sub.cgi | |
160-161 | Creating/Calling a Subroutine That Takes Input |
input.html | input.cgi |
162 | Using a Subroutine's Return Value | return.html | return.cgi |
163 | Setting the Return Value Manually | return_manual.html | return_manual.cgi |
164-165 |
Storing Subroutines in an External File Calling Subroutines from an External File |
external.html | external.lib external.cgi |
page | section | HTML | Perl |
168 | Assigning a List to a Hash | assign_hash.html assign_hash_commas.html |
assign_hash.cgi assign_hash_commas.cgi |
169 | Getting a Value by Using a Key | getone.html | getone.cgi |
170 | Adding or Replacing a Key-Value Pair | addone.html | addone.cgi |
171 | Getting Several Values Using Keys | getmore.html | getmore.cgi |
172 | Getting All of a HashÕs Keys | keys.cgi | |
173 | Getting All of a HashÕs Values | values.cgi | |
174-175 | Getting Each Key and Value in a Hash | ||
176-177 | Getting the Pairs in a Specified Order | ||
178 | Removing Key-Value Pairs | delete.html | delete.cgi |
179 | Checking to See If a Key Exists | exists.html | exists.cgi |
page | section | HTML | Perl |
182 | Finding Something | match.cgi | |
183 | Finding and Replacing | replace.html | replace.cgi |
184 | Seeing and Using What Was Found | whatwasfound.cgi | |
185 | Splitting a Value into Pieces | split.html | split.cgi |
188 | Matching a Single Character | matchone.html | matchone.cgi |
189 | Matching a String of Characters | sequence.html | sequence.cgi |
190 | Matching a Character from a Group | class.html | class.cgi |
191 | Matching a Character ThatÕs Not in the Group | negclass.html | negclass.cgi |
192 | Using Class Shorthands | classshort.html | classshort.cgi |
193 | Limiting the Location | anchor.html | anchor.cgi |
195 | Choosing How Many to Match |
||
196 | To include optional elements | optional.html | optional.cgi |
197 | To match one or more elements | plus.html | plus.cgi |
198 | To include multiple optional elements | asterisk.html | asterisk.cgi |
199 | To match at least m and at most n elements | mandn,html | mandn.cgi |
201 | Matching One Element or Another | alternation.html | alternation.cgi |
202 | More on Using What You Already Matched | using.html | using.cgi |
page | section | HTML | Perl |
208-209 | Storing Collected Data in a Hidden Field | hidden.html |
hidden1.cgi |
212-213 | Sending a Cookie | sendcookie.html | sendcookie.cgi |
214 | Setting a CookieÕs Expiration Date | expires.html | expires.cgi |
215 | Limiting a Cookie to a Domain | domain.html | domain.cgi |
216 | Limiting a Cookie to a Part of Your Server | path.html | path.cgi |
217 | Limiting Cookies to Secure Connections | secure.html | secure.cgi |
218 | Reading and Using a Cookie | readcookie.cgi |
page | section | HTML | Perl |
222 | Formatting Output with Perl | format.html | format.cgi |
223 | Creating a Format Pattern for Integers | padding.cgi | |
226 | Changing the Case | ucfirst.html | ucfirst.cgi |
227 | Changing Characters | tr.html | tr.cgi |
228 | Finding the Length of a String | length.html | length.cgi |
229 | Finding Where Something Is in a String | index.html | index.cgi |
230 | Extracting One String from Another | substr.html | substr.cgi |
231 | Cleaning up the End of a String | chop.html | chop.cgi |
232-233 | Formatting Output with HTML | html.cgi html_linebreaks.cgi |
|
234 | Printing Several Lines at a Time | here.cgi | |
235 | Simplifying Paths to Images and Links | base.cgi | |
236 | Outputting Data in a Table | table.cgi |
page | section | HTML | Perl |
238 | Reading the Security FAQs |
Lincoln SteinÕs World Wide Web Security FAQ Security Issues When Installing and Customizing Pre-Built Web Scripts, by Selena Sol |
|
239 | The Problem with Visitor Input | visitorinput.cgi visitorinput2.cgi |
|
241 | Limiting Access to Files | fileaccess.cgi | |
242 | Using CGI.pm to Limit Incoming Data | limitinput.html | limitinput.cgi |
243 | Avoiding Tainted Data | taintcheck_before.html | taintcheck_before.cgi |
244 | Cleaning and Using Outside Data | taintcheck_after.cgi |
page | section | HTML | Perl |
248-249 | Opening a File | (writetolog.cgi) | |
250 | Verifying File and Directory Operations | (writetolog.cgi) | |
251 | Writing to an External File | writetolog.html | writetolog.cgi |
252 | Getting Exclusive Access to a File | flock.html | flock.cgi |
253 | Reading Data from an External File | (link appears in output from writetolog.html) | readfromlog.cgi |
254 | Closing a File | (readfromlog.cgi) | |
255 | Renaming a File | rename.html | rename.cgi |
256 | Removing a File | delete.html | delete.cgi |
257 | Checking a FileÕs Status | exists.html | exists.cgi |
258 | Opening a Directory | (readdir.cgi) | |
259 | Reading the Contents of a Directory | readdir.html | readdir.cgi |
260 | Closing a Directory | (readdir.cgi) | |
261 | Changing the Working Directory | chdir.html | chdir.cgi |
262 | Creating a Directory | mkdir.html | mkdir.cgi |
263 | Changing Permissions from within a Script | The files aren't live, but are included in the download package. (chmod.html) | chmod.cgi |
264 | Removing a Directory | rmdir.html | rmdir.cgi |
265-267 |
Getting Ready to E-mail Output Sending Output via E-mail |
The files aren't live, but are included in the download package. (formmail.html) | formmail.cgi |
page | section | HTML | Perl |
270 | Creating a Form for Uploading Files | uploading.html | (uploading.cgi) |
271 | Getting the Name of the Uploaded File | filename.html | filename.cgi |
272 | Finding out a FileÕs MIME Type | mimetype.html | mimetype.cgi |
273-274 |
Specifying Where the File Should Be Saved Reading in and Limiting Uploaded Files |
uploading.html | uploading.cgi |
page | section | HTML | Perl |
280 | Creating an Error Subroutine | error.lib | |
281 | Using PerlÕs Error Reporting | die_carp.cgi | |
283 | Isolating the Problem | isolating.cgi | |
284 | Following a VariableÕs Progress | progress.cgi |
page | section | URL |
310 | Text Editors | |
311 | Telnet Programs | |
312 | Other Folks' Scripts | |
313 | Learning More |