340■INDEXmethods for retrieving request values,210–217mod_cgi vs. mod_perl, 187, 201prerequisites needed for mod_perl, 194printing incoming client requests, 210–211request handling in, 183–184request procedures for, 185setting response headers, 220–221setting response status, 221–222suEXEC feature, 73, 85switching from mod_cgi <strong>to</strong> mod_perl,199–200unpacking source code for mod_perlmodule, 194working with request objects, 209–210writing error logs, 227–229writing <strong>to</strong> alternate log file, 38–39apop() method, 111args() methodaccessing query string with, 212–213casting in<strong>to</strong> scalar, 213–214iterating through arguments, 214–215playing output in<strong>to</strong> hash, 214, 216argumentscalling Mason components with, 274–275iterating through, 214–215arithmetic opera<strong>to</strong>rs, 293–296attributesLWP::UserAgent module, 96XML::SAX parser, 178–179auth() method, 111authenticationLWP web site, 101–102methods for e-mail, 111authoritative DNS servers, 127–128au<strong>to</strong>decrement opera<strong>to</strong>r (--), 308–310au<strong>to</strong>dispatch, 144au<strong>to</strong>handlers, 277au<strong>to</strong>increment opera<strong>to</strong>r (++), 308–310■Bbanner() method, 110bcc (blind carbon copies), 124–125BEGIN block, 39binary numbers, 287–288binding parameters, 62–63bitwise opera<strong>to</strong>rs, 296blind carbon copies (bcc), 124–125 tag, 270BLOCK directives, 248–249Boolean opera<strong>to</strong>rs, 301–302breaking out of loops, 333–334browsersconfiguring CGI::Carp fatal errors <strong>to</strong>, 36–38controlling redirects, 99duplicating browser object, 99–100prompting on receipt of cookies, 17sending fatal errors from Carp <strong>to</strong>, 30using -dump option in Lynx, 104viewing RSS feeds in, 153–154■Ccallinghost in Net::SMTP module, 120Mason component with arguments, 274National Weather Service SOAP service,149–152Net::Ping, 129SOAP::Lite methods, 142–144SOAP servers, 148–149carbon copies (cc), 124–125Carp module, 29–31about CGI::Carp module and, 35debugging with, 29logging messages <strong>to</strong> file, 30–31CASE conditionals, 253case sensitivity<strong>Perl</strong> variable names and, 313when calling Net::Ping, 129casting args() method in<strong>to</strong> scalar, 213–214cc (carbon copies), 124–125CGI (Common Gateway Interface). See alsoCGI module; CGI scriptsdefined, 3CGI moduleabout, 4carrying values between forms, 24–26creating browser cookies, 15–23form elements in, 12–15function-oriented programming methods,5–7HTML tags within, 11–12method groupings for, 4need for when compiling Mason, 265–266object-oriented programming methods,9–11plug-ins, 256printing name input using, 14security issues for, 47sending multiple cookies, 21–22setting cookie expiration dates using, 20time period abbreviations used in, 20uploading files with, 77–83version used in book, 4–5CGI scriptscreating for function-orienteddevelopment, 6–7debugging and troubleshooting, 27–31executing with Apache::Registry orApache::<strong>Perl</strong>Run, 189–193, 202–205faster execution with mod_perl module, 188file permissions and, 32
■INDEX 341mod_cgi vs. mod_perl execution of,187–188, 201output problems with forms usingmod_cgi vs. mod_perl, 190–193permissions and system interaction, 73printing content-type of uploaded file, 80pros and cons of system interaction with,26–27security of, 31taint mode, 32–33using system processes within, 85viewing environment variables in, 23–24CGI::Carp module, 35–39about Carp module and, 35configuring fatal errors <strong>to</strong> display inbrowsers, 36–38security for, 47cgi-lib.pl, 4checking e-mailMail::Box for, 117–118Net::POP3 for, 107–117child processesApache request handling with, 184, 186forking, 186–187chomping, 240, 241–242chunking, 286classes of SOAP::Lite, 139clearingcookies, 16namespaces, 189, 203CLI (command-line interface), 70closedir() function, 77closing filehandles, 76command-line interface (CLI), 70comments, 242–243Common Gateway Interface. See CGIcompilingMason, 265–267options for mod_perl, 198components, 270–274defined, 254get_year, 280illustrated, 271syntax of, 271–272<strong>to</strong>p-level, 264using, 270–271concatenation opera<strong>to</strong>r, 302conditionalsIF-ELSIF-ELSE, 252–253modified within Mason page, 272short-circuited evaluation of, 325SWITCH and CASE, 253within Mason page, 271–272configuringMason, 268Mason and Apache, 267–269mod_perl, 198–199, 206–207connecting <strong>to</strong> databasedatabase handles and, 52–53steps for, 56troubleshooting connections, 70content event handlers for XML::SAX, 173,174content() method, 216convertingbetween strings and numbers, 292–293web sites <strong>to</strong> Mason, 233cookie_jar attribute, 101cookies, 15–23checking data from, 34creating with CGI module, 18defined, 15expiration dates for, 19–20handling for LWP modules, 101limitations for using, 16–17parameters for, 16prompting on receipt of, 17reading, 224–225retrieving, 18–19secure, 223–224sending multiple, 21–22sending with Apache::Cookie, 223setting, 17working with Apache::Cookie class,222–225creating RSS channel, 159–162credentials() method, 101–102■DData::Dumper module, 168–170datachecking cookie, 34untainting, 33using untrusted, 33–34data source names (DSNs), 51–52data types, 285–293numbers, 285–288setting in SOAP::Lite, 145–146strings, 288–291database driversDSNs corresponding <strong>to</strong>, 52listing installed, 50–51database handlesconnecting <strong>to</strong> database with, 52–53, 56defined, 50disconnect() method, 57do() method for, 62quote() method for, 61–62databases, 49–72binding parameters, 62–63connecting <strong>to</strong>, 56creating HTML table, 67–69database handles, 52–53disconnecting from, 57
- Page 3 and 4:
Beginning Web Development with Perl
- Page 5 and 6:
PART 5 ■ ■ ■ Creating Web Tem
- Page 8 and 9:
■CONTENTSvii■CHAPTER 4 System I
- Page 10 and 11:
■CONTENTSixCreating a SOAP Listen
- Page 12 and 13:
■CONTENTSxiTemplate Toolkit Synta
- Page 14 and 15:
About the Author■STEVE SUEHRING i
- Page 16 and 17:
AcknowledgmentsThanks to James Lee
- Page 18 and 19:
xx■INTRODUCTIONThis book will use
- Page 20 and 21:
CHAPTER 1■ ■ ■The CGI ModuleT
- Page 22 and 23:
CHAPTER 1 ■ THE CGI MODULE 5for t
- Page 24 and 25:
CHAPTER 1 ■ THE CGI MODULE 7Obvio
- Page 26 and 27:
CHAPTER 1 ■ THE CGI MODULE 9exit;
- Page 28 and 29:
CHAPTER 1 ■ THE CGI MODULE 11Each
- Page 30 and 31:
CHAPTER 1 ■ THE CGI MODULE 13When
- Page 32 and 33:
CHAPTER 1 ■ THE CGI MODULE 15Upda
- Page 34 and 35:
CHAPTER 1 ■ THE CGI MODULE 17rese
- Page 36 and 37:
CHAPTER 1 ■ THE CGI MODULE 19prin
- Page 38 and 39:
CHAPTER 1 ■ THE CGI MODULE 21Sett
- Page 40 and 41:
CHAPTER 1 ■ THE CGI MODULE 23You
- Page 42 and 43:
CHAPTER 1 ■ THE CGI MODULE 25■C
- Page 44 and 45:
CHAPTER 1 ■ THE CGI MODULE 27No m
- Page 46 and 47:
CHAPTER 1 ■ THE CGI MODULE 29The
- Page 48 and 49:
CHAPTER 1 ■ THE CGI MODULE 31prin
- Page 50 and 51:
CHAPTER 1 ■ THE CGI MODULE 33Also
- Page 52 and 53:
CHAPTER 2■ ■ ■Popular CGI Mod
- Page 54 and 55:
CHAPTER 2 ■ POPULAR CGI MODULES 3
- Page 56 and 57:
CHAPTER 2 ■ POPULAR CGI MODULES 3
- Page 58 and 59:
CHAPTER 2 ■ POPULAR CGI MODULES 4
- Page 60 and 61:
CHAPTER 2 ■ POPULAR CGI MODULES 4
- Page 62 and 63:
CHAPTER 2 ■ POPULAR CGI MODULES 4
- Page 64 and 65:
CHAPTER 2 ■ POPULAR CGI MODULES 4
- Page 66 and 67:
50CHAPTER 3 ■ DATABASES AND PERLT
- Page 68 and 69:
52CHAPTER 3 ■ DATABASES AND PERLm
- Page 70 and 71:
54CHAPTER 3 ■ DATABASES AND PERLl
- Page 72 and 73:
56CHAPTER 3 ■ DATABASES AND PERLc
- Page 74 and 75:
58CHAPTER 3 ■ DATABASES AND PERLR
- Page 76 and 77:
60CHAPTER 3 ■ DATABASES AND PERLm
- Page 78 and 79:
62CHAPTER 3 ■ DATABASES AND PERLw
- Page 80 and 81:
64CHAPTER 3 ■ DATABASES AND PERLA
- Page 82 and 83:
66CHAPTER 3 ■ DATABASES AND PERLm
- Page 84 and 85:
68CHAPTER 3 ■ DATABASES AND PERLm
- Page 86 and 87:
70CHAPTER 3 ■ DATABASES AND PERLT
- Page 88 and 89:
72CHAPTER 3 ■ DATABASES AND PERLT
- Page 90 and 91:
74CHAPTER 4 ■ SYSTEM INTERACTION
- Page 92 and 93:
76CHAPTER 4 ■ SYSTEM INTERACTIONt
- Page 94 and 95:
78CHAPTER 4 ■ SYSTEM INTERACTIONc
- Page 96 and 97:
80CHAPTER 4 ■ SYSTEM INTERACTIONA
- Page 98 and 99:
82CHAPTER 4 ■ SYSTEM INTERACTIONm
- Page 100 and 101:
84CHAPTER 4 ■ SYSTEM INTERACTIONs
- Page 102 and 103:
86CHAPTER 4 ■ SYSTEM INTERACTIONr
- Page 104 and 105:
CHAPTER 5■ ■ ■LWP ModulesLWP
- Page 106 and 107:
CHAPTER 5 ■ LWP MODULES 91HTTP Re
- Page 108 and 109:
CHAPTER 5 ■ LWP MODULES 93Get Fun
- Page 110 and 111:
CHAPTER 5 ■ LWP MODULES 95When ca
- Page 112 and 113:
CHAPTER 5 ■ LWP MODULES 97These a
- Page 114 and 115:
CHAPTER 5 ■ LWP MODULES 99Recall
- Page 116 and 117:
CHAPTER 5 ■ LWP MODULES 101which
- Page 118 and 119:
CHAPTER 5 ■ LWP MODULES 103For th
- Page 120 and 121:
CHAPTER 5 ■ LWP MODULES 105Obviou
- Page 122 and 123:
108CHAPTER 6 ■ NET:: TOOLSCreatin
- Page 124 and 125:
110CHAPTER 6 ■ NET:: TOOLSThe out
- Page 126 and 127:
112CHAPTER 6 ■ NET:: TOOLSmy $pop
- Page 128 and 129:
114CHAPTER 6 ■ NET:: TOOLSthe POP
- Page 130 and 131:
116CHAPTER 6 ■ NET:: TOOLS($messa
- Page 132 and 133:
118CHAPTER 6 ■ NET:: TOOLSListing
- Page 134 and 135:
120CHAPTER 6 ■ NET:: TOOLSFor the
- Page 136 and 137:
122CHAPTER 6 ■ NET:: TOOLSNet::SM
- Page 138 and 139:
124CHAPTER 6 ■ NET:: TOOLS$smtpco
- Page 140 and 141:
126CHAPTER 6 ■ NET:: TOOLSuse Net
- Page 142 and 143:
128CHAPTER 6 ■ NET:: TOOLSListing
- Page 144 and 145:
130CHAPTER 6 ■ NET:: TOOLSFor exa
- Page 146 and 147:
132CHAPTER 6 ■ NET:: TOOLSSending
- Page 148 and 149:
PART 3■ ■ ■XML and RSS
- Page 150 and 151:
138CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 152 and 153:
140CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 154 and 155:
142CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 156 and 157:
144CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 158 and 159:
146CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 160 and 161:
148CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 162 and 163:
150CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 164 and 165:
152CHAPTER 7 ■ SOAP-BASED WEB SER
- Page 166 and 167:
154CHAPTER 8 ■ PERL AND RSSFigure
- Page 168 and 169:
156CHAPTER 8 ■ PERL AND RSShttp:/
- Page 170 and 171:
158CHAPTER 8 ■ PERL AND RSSDebugg
- Page 172 and 173:
160CHAPTER 8 ■ PERL AND RSS$rsswr
- Page 174 and 175:
162CHAPTER 8 ■ PERL AND RSSListin
- Page 176 and 177:
CHAPTER 9■ ■ ■XML Parsing wit
- Page 178 and 179:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 180 and 181:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 182 and 183:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 184 and 185:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 186 and 187:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 188 and 189:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 190 and 191:
CHAPTER 9 ■ XML PARSING WITH PERL
- Page 192 and 193:
PART 4■ ■ ■PerformanceEnhance
- Page 194 and 195:
184CHAPTER 10 ■ APACHE AND MOD_PE
- Page 196 and 197:
186CHAPTER 10 ■ APACHE AND MOD_PE
- Page 198 and 199:
188CHAPTER 10 ■ APACHE AND MOD_PE
- Page 200 and 201:
190CHAPTER 10 ■ APACHE AND MOD_PE
- Page 202 and 203:
192CHAPTER 10 ■ APACHE AND MOD_PE
- Page 204 and 205:
194CHAPTER 10 ■ APACHE AND MOD_PE
- Page 206 and 207:
196CHAPTER 10 ■ APACHE AND MOD_PE
- Page 208 and 209:
198CHAPTER 10 ■ APACHE AND MOD_PE
- Page 210 and 211:
200CHAPTER 10 ■ APACHE AND MOD_PE
- Page 212 and 213:
202CHAPTER 11 ■ DEVELOPMENT WITH
- Page 214 and 215:
204CHAPTER 11 ■ DEVELOPMENT WITH
- Page 216 and 217:
206CHAPTER 11 ■ DEVELOPMENT WITH
- Page 218 and 219:
208CHAPTER 11 ■ DEVELOPMENT WITH
- Page 220 and 221:
210CHAPTER 11 ■ DEVELOPMENT WITH
- Page 222 and 223:
212CHAPTER 11 ■ DEVELOPMENT WITH
- Page 224 and 225:
214CHAPTER 11 ■ DEVELOPMENT WITH
- Page 226 and 227:
216CHAPTER 11 ■ DEVELOPMENT WITH
- Page 228 and 229:
218CHAPTER 11 ■ DEVELOPMENT WITH
- Page 230 and 231:
220CHAPTER 11 ■ DEVELOPMENT WITH
- Page 232 and 233:
222CHAPTER 11 ■ DEVELOPMENT WITH
- Page 234 and 235:
224CHAPTER 11 ■ DEVELOPMENT WITH
- Page 236 and 237:
226CHAPTER 11 ■ DEVELOPMENT WITH
- Page 238 and 239:
228CHAPTER 11 ■ DEVELOPMENT WITH
- Page 240 and 241:
230CHAPTER 11 ■ DEVELOPMENT WITH
- Page 242 and 243:
CHAPTER 12■ ■ ■The Template T
- Page 244 and 245:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 246 and 247:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 248 and 249:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 250 and 251:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 252 and 253:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 254 and 255:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 256 and 257:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 258 and 259:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 260 and 261:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 262 and 263:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 264 and 265:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 266 and 267:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 268 and 269:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 270 and 271:
CHAPTER 12 ■ THE TEMPLATE TOOLKIT
- Page 272 and 273:
CHAPTER 13■ ■ ■Perl Web Sites
- Page 274 and 275:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 276 and 277:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 278 and 279:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 280 and 281:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 282 and 283:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 284 and 285:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 286 and 287:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 288 and 289:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 290 and 291:
CHAPTER 13 ■ PERL WEB SITES WITH
- Page 292 and 293:
284APPENDIX ■ PERL BASICSKeywords
- Page 294 and 295:
286APPENDIX ■ PERL BASICS$ perl n
- Page 296 and 297:
288APPENDIX ■ PERL BASICSAnd line
- Page 298 and 299: 290APPENDIX ■ PERL BASICSCan you
- Page 300 and 301: 292APPENDIX ■ PERL BASICSBy defau
- Page 302 and 303: 294APPENDIX ■ PERL BASICS#!/usr/b
- Page 304 and 305: 296APPENDIX ■ PERL BASICSThe last
- Page 306 and 307: 298APPENDIX ■ PERL BASICSThe NOT
- Page 308 and 309: 300APPENDIX ■ PERL BASICSprint "S
- Page 310 and 311: 302APPENDIX ■ PERL BASICSthe syst
- Page 312 and 313: 304APPENDIX ■ PERL BASICS$ perl s
- Page 314 and 315: 306APPENDIX ■ PERL BASICSThis cod
- Page 316 and 317: 308APPENDIX ■ PERL BASICS$a = 6 *
- Page 318 and 319: 310APPENDIX ■ PERL BASICS$a = "A9
- Page 320 and 321: 312APPENDIX ■ PERL BASICS#!/usr/b
- Page 322 and 323: 314APPENDIX ■ PERL BASICSmy $name
- Page 324 and 325: 316APPENDIX ■ PERL BASICSis short
- Page 326 and 327: 318APPENDIX ■ PERL BASICSLet’s
- Page 328 and 329: 320APPENDIX ■ PERL BASICSOther Te
- Page 330 and 331: 322APPENDIX ■ PERL BASICS}}}actio
- Page 332 and 333: 324APPENDIX ■ PERL BASICSNotice t
- Page 334 and 335: 326APPENDIX ■ PERL BASICSLooping
- Page 336 and 337: 328APPENDIX ■ PERL BASICSuse stri
- Page 338 and 339: 330APPENDIX ■ PERL BASICSuntil ($
- Page 340 and 341: 332APPENDIX ■ PERL BASICSuse stri
- Page 342 and 343: 334APPENDIX ■ PERL BASICSdoneAll
- Page 344 and 345: 336APPENDIX ■ PERL BASICS$ perl r
- Page 346 and 347: 338APPENDIX ■ PERL BASICSSummaryT
- Page 350 and 351: 342■INDEXdo() method for, 62dumpi
- Page 352 and 353: 344■INDEXhello option for Net::SM
- Page 354 and 355: 346■INDEXNet::DNS module, 125-128
- Page 356 and 357: 348■INDEXrecord with Net::DNS mod
- Page 358 and 359: 350■INDEXstoring mail server in e
- Page 360 and 361: 352■INDEXlogging based on, 229pri