\S (nonspace characters), regular expressions, 351
scalar function, 70
scalar value, 5
scope, variable, 73
Score_Test function
Quizzer.pm, 152–155
score_test.cgi, 148
score_test.cgi
cookie function, 147
Get_Test_Config function, 148
header function, 148
here document, 148
param function, 148
printing link to, 161
program listing, 172–173
Score_Test function, 148
strict module, 147
taint switch, 147
warnings switch, 147
screens, drawing, 79
script, Perl
add_table.pl, 35
connect_multi.pl, 25–26
generate.pl, 459–462
photo_dumper.pl, 296–298
report_graphic.pl, 341–343
report_html.pl, 339–341
report_text.pl, 338–339
transaction.pl, 283
Scrolled constructor, graphical phonebook application, 360
Search_DB subroutine, phonebook.cgi, 118–119
Second Normal Form (2NF), normalization, 11
security, taint mode, 111–113
SELECT statement
asterisk, 39
command-line phone number lookup program, 357
command-line phonebook program, 352
COUNT function, 45–46
data manipulation operators, using with, 6
FROM keyword, relationship to, 37
GROUP BY statement, 46–48
index.cgi (photo album program), 446, 451
ORDER BY clause, 43–45
report_graphic.pl, 335
report_text.pl, 324–325
SmallAuction.pm, 208
syntax, 505–506
WHERE clause, 41–42
<select> tag, 108
selectrow_array method
report_html.pl, 328
report_text.pl, 324
sequence generator, PostGreSQL, 354
server address, data source name, 21
session management
importance of, 245
tied hashes, 246
shell wildcard, 120
shift function
command-line phone number lookup program, 356
graphical phonebook application, 378
importance of, 74
index.cgi (photo album program), 450
Quizzer.pm, 155–156
SmallAuction.pm, 206, 211
Show_Album subroutine
admin.cgi, 458–459
index.cgi (photo album program), 444, 446
show_main_form subroutine, graphical phonebook application, 360, 367
show_person_form subroutine, graphical phonebook application, 361
show_phone_form subroutine, graphical phonebook application, 363, 373
Show_Photo subroutine, index.cgi (photo album program), 443
signup.cgi
BasicSession.pm module, 248, 251
CGI module, 248
Check_Fields function, 249, 252
Get_Session function, 248
param function, 248
program listing, 267–268
strict module, 247
taint switch, 247
tie function, 249
warnings switch, 247
Wrap_Page function, 251
single quote (‘), 203
slash.dot.org, 113
slice
array, 450
hash, 353
SmallAuction.pm
bids table, 214
CREATE TABLE, 213
Date_Cmp function, 205
Date::Manip module, 205
double quote (qq) function, 211
DROP statement, 214
Drop_Down_Item_List function, 208
execute method, 208
Exporter module, 205
fetchrow_array method, 212
Get_Item_Detail subroutine, 211
Get_Item_Table subroutine, 213
index.cgi, 185
Is_Bidding_Open function, 207–208
item table, 214
MAX function, 212
namespace, 204
Page_Header subroutine, 206
prepare method, 208
Print_Page subroutine, 205, 207
program listing, 223–226
push function, 212
quote word (qw) function, 210
SELECT statement, 208
shift function, 206, 211
subselect, 213–214
TMPL file handle, 206
UnixDate function, 205
view_all.cgi, 188
view_item.cgi, 196
SMALLINT data type, 5
SOAP
definition, 299–300
Web-based catalog system overview, 300
SOAP::Lite module
cart.cgi, 405
catalog.cgi, 309
catalog.cgi (shopping cart program), 398
item_details.cgi, 312
item_details.cgi (shopping cart program), 401
soap_server.cgi, 302
soap_server.cgi
books database, 302
_callback function, 306–307
Catalog package, 301–302
Catalog::input variable, 304, 306
<catalog_item> XML tag, 305
DBI module, 301
die function, 304
disconnect, 305
execute method, 303
_get_image subroutine, 304, 306
Get_Product_Data subroutine, 303
Get_Product_List subroutine, 302
handle method, 302
HTML::LinkExtor module, 301, 306
LWP::Simple module, 301
LWP::Simple::get($url), 306
mysql driver name, 302
namespace, 301
parse method, 306
program listing, 315–316
regular expression, 305
SOAP::Lite package, 302
SOAP::Transport::HTTP module, 301
strict module, 301
switch.perlguy.net server name, 302
warnings switch, 301
soap_server19.cgi
cart.cgi, 406
catalog.cgi (shopping cart program), 399
SOAP::Transport::HTTP module, soap_server.cgi, 301
sort, database records, 43–45
speed
add-ons, 113
Embperl, 114
eperl, 114
HTML Mason, 114
mod_perl, 113–114
split statement, Quizzer.pm, 153
spreadsheet
cell, 5
compared to database table, 4, 27
sprintf function
cart.cgi, 408
graphical phonebook application, 373
Quizzer.pm, 155
view_all.cgi, 192
view_item.cgi, 198
$sql, 21–22
SQL statement execution, Quizzer.pm, 159
SQL statement, generating, 120
SQLSTATE error string, 24
SQLSTATE method, 24
square brackets ([ ]), character class, 202
stable.tar.gz, 486
start_tag subroutine, photo_dumper.pl, 289
Start_Tk_Interface subroutine, 80, 87
statement handle, 22
Statistical Tables (Fisher and Yates), 160
STDIN, 69, 74, 106, 323
STDOUT, 323
Stein, Lincoln (CGI module), 105, 118
$sth statement handle, 22, 190
$sth_getlist handle, Quizzer.pm, 152
sticky attribute, grid method, 88
STORE method, BasicSession.pm, 257
strict module
add_questions.cgi, 133
BasicSession.pm, 257
cart.cgi, 405
catalog.cgi (product catalog program), 309
catalog.cgi (shopping cart program), 397
command-line phone number lookup program, 356
command-line phonebook program, 349
create_test.cgi, 130
importance of, 18–19
index.cgi (auction program), 185
index.cgi (photo album program), 442
item_details.cgi (product catalog program), 312
item_details.cgi (shopping cart program), 401
phonebook.cgi, 118
photo_dumper.pl, 288
report_html.pl, 327
report_text.pl, 324
score_test.cgi, 147
signup.cgi, 247
soap_server.cgi, 301
take_test.cgi, 142
test_chooser.cgi, 139
view_all.cgi, 188
view_item.cgi, 196
string, column types related to, 5
string comparison, SQL compared to Perl, 42
Structured Query Language (SQL)
data-manipulation operators, 6
JOIN operation, 7–9
PROJECT operation, 7
RESTRICT operation, 6–7
SELECT statement, 6
UNION operation, 9–10
wildcard, 120
submit type, <input> tag, 108
Submit_Bit function, view_item.cgi, 200
subselect, SmallAuction.pm, 213–214
substr function, view_all.cgi, 191
switch.perlguy.net server name, soap_server.cgi, 302
symbolic link, 430
symbols, converting to encoded equivalents, 331