4213indx.qxd 4/19/03 8:50 PM Page 801

Index

Note to the reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations.

" (quotation marks) Symbols in Perl, 235, 236 ! (exclamation point), in Unix, 234 for strings, 293–297 &nested_quotewords() function, 781 "ewords() function, 781 # (pound sign), for Perl comments, 234, 267 A $ (dollar sign), for scalars, 237 A (Anchor) object (JavaScript), 508–509 $! (system error variable), 305–306, ; (semicolon), for JavaScript line ends, 28 306, 384 abs function (Perl), 633 $DEBUG variable, 306 abs() method, of Math object (JavaScript), % (percent sign), in URLs, 350 50, 121, 575 . (concatenation operator) in Perl, 409 absolute pathname, 255 . (current directory), 418 abs_path() function (Perl), 682 .. (parent directory), 418 abstract, 29 @ character accept function (Perl), 633 escape character (\) for literal, 296 acceptCharset property, of form object (JavaScript), 142 for Perl lists, 239 acos() method, of Math object (JavaScript), @ENV array (Perl), 336 50, 121, 576 @INC array, 295 ACRONYM object (JavaScript), 509 \ (backslash; escape), for special characters, ACTION attribute, of HTML form, 346 32–33, 235 action property, of form object (JavaScript), _DATA_ token, 765–766 142, 161, 551 + (concatenation operator), 31 Active Server Pages (ASP), 20–21 < > (angle brackets) ActiveState debugger, 315, 315–317 error in Perl from missing, 293 ActiveX, 16–17 for file handles,COPYRIGHTED 328 MATERIAL ActiveXObject object (JavaScript), 509–510 for HTML tags, 5 add-in modules, 9 << (heredoc operator), 284 add() method, in IO::Seekable module == (equal to) Boolean operator, in Perl (Perl), 1 conditional statement, 297 add_generic() method, 472–473, 481 = (match) operator, 357, 358 ~ addhistory command, in Term::ReadLine >> (append) symbol in Perl, 329 module (Perl), 777 > operator in Perl, 329 ADDRESS object (JavaScript), 510 4213indx.qxd 4/19/03 8:50 PM Page 802

802 alarm function (Perl)—Attribs command, in Term::ReadLine module (Perl)

alarm function (Perl), 633 applications. See also CGI scripts; programs alert box in JavaScript, 53 vs. applets, 16 alert box, in JavaScript, 53 distributed, 24 alert box in JavaScript apply() method, of Function object, 118 cookies to customize, 87, 87 appName property, of navigator object onclick event to display, 77–78 (JavaScript), 578 alert() method, of window object appVersion property, of navigator object (JavaScript), 628 (JavaScript), 578 alinkcolor property, of document object Area object (JavaScript), 103, 512–513 (JavaScript), 542 arguments, for Perl functions, 234 alnum Posix class, 369 arguments property, of Function object alpha Posix class, 369 (JavaScript), 118, 553 AmphetaDesk, 505 arguments.length property, of Function object (JavaScript), 553 anchor() method, of String object (JavaScript), 46, 605 arithmetic operators, in JavaScript, 37 anchor object, 102 Array object (JavaScript), 34, 111–113, 513–515 anchors array, 102 arrays. See also lists, in Perl anchors property, of document object (JavaScript), 542 creating from string, 48 Andreessen, Marc, 2 in JavaScript, 33–36 angle brackets (< >) complex, 35–36 for file handles, 328 methods, 36 for HTML tags, 5 simple, 33–35 Apache web server, 3 Tie::Array module (Perl) for, 785–788 hit counter analysis, 416 The Art of computer Programming, volume 3 log files, 400, 405 (Knuth), 783 appCodeName property, of navigator object ascii Posix class, 369 (JavaScript), 578 asin() method, of Math object (JavaScript), append (>>) symbol in Perl, 329, 330 50, 121, 576 Applet object (JavaScript), 102, 510–511 askNextQuestion() function in quiz tag, 16 program, 193, 194 applets, 27 assignment operators, in JavaScript, 38 vs. applications, 16 associative arrays, 284 applets array, 103 atan() method, of Math object (JavaScript), applets property, of document object 51, 121, 576 (JavaScript), 542 atan2 function (Perl), 633 application framework, for business atan2() method, of Math object software, 24 (JavaScript), 576 application/x-www-form-urlencoded MIME Attribs command, in Term::ReadLine type, 161 module (Perl), 778 4213indx.qxd 4/19/03 8:50 PM Page 803

Attribute object (JavaScript)—Boolean object (JavaScript) 803

Attribute object (JavaScript), 515 BIG object (JavaScript), 519 attributes for HTML tags, 6 binary executables, 251, 252 authoring tools, 2 binary numbering, 351–352 AUTH_TYPE environment variable, 204 binary search for bugs, 307 Autoloader module (Perl), 666–669 bind function (Perl), 634 overriding AUTOLOAD subroutine, bindmode function (Perl), 634 667–668 bits() method, in IO::Seekable module vs. SelfLoader, 766 (Perl), 747 availHeight property, of screen object bitwise logical operators, 38 (JavaScript), 599 Blat, 439–444, 444 availWidth property, of screen object installing, 439–440 (JavaScript), 599 options, 440–441 awk, 226 bless function (Perl), 634 blink() method, of String object B (JavaScript), 47, 605 b (breakpoint) command (Perl blob (binary large object), 461 debugger), 312 BLOCKQUOTE object (JavaScript), B object (JavaScript), 515–516 519–520 back() method, of History object blocks in Perl, 266–267 (JavaScript), 557 blur() method backslash (\; escape), for special characters, of Button object (JavaScript), 523 32–33, 235 of Checkbox object (JavaScript), 527 backspace, 235 of FileUpload object (JavaScript), 550 barewords, 292, 302–303 of form elements, 146 base 8 number, 32 of Radio object (JavaScript), 591 BASE object (JavaScript), 516 of Reset object (JavaScript), 594 BASEFONT object (JavaScript), 516–517 of Select object (JavaScript), 601 basename() routine, 718 of Submit object (JavaScript), 612 BDO object (JavaScript), 517–518 of Text object (JavaScript), 616 beginning of array, testing in Perl, 300 of Textarea object (JavaScript), 616 beginning tag, 5 of window object (JavaScript), 628 Benchmark module (Perl), 669–672 Body method, of Mail::Sender, 448 Berkeley DB database file, opening, BODY object (JavaScript), 520–521 694–696 tag, 6 Berners-Lee, Tim, 7 bold() method, of String object bgColor property, of document object (JavaScript), 47, 48, 605 (JavaScript), 100, 542 bookmarks, POST vs. GET methods for, 347 BGSOUND object (JavaScript), 518–519 boolean, 29 big() method, of String object (JavaScript), 46, 605 Boolean object (JavaScript), 114, 521–522 4213indx.qxd 4/19/03 8:50 PM Page 804

804 Boolean variables—catdir method

Boolean variables, 31 border property, of Image object C (JavaScript), 561 c (continue) command (Perl debugger), 312 boxes for user communication in C , 226 JavaScript, 53–54 call function (Perl), 634 alert box, 53, 53 call() method, of Function object, 118 confirm box, 53, 54 caller property, of Function object prompt box, 54, 54 (JavaScript), 118, 553 BR object (JavaScript), 522 calling function, 66 brackets (< >) Cancel method, of Mail::Sender, 448 error in Perl from missing, 293 canonpath method for file handles, 328 in File::Spec::Mac module (Perl), 727 for HTML tags, 5 in File::Spec::Unix module (Perl), 729 break statement (JavaScript), 29, 46 in File::Spec::Win32 module (Perl), 732 in switch structure, 39 can_read() method, in IO::Seekable module breakpoint on load command, 313 (Perl), 747 breakpoints, 307–308 “Can’t find string terminator” error deleting, 312 message, 291 setting, 312–313 “Can’t find terminator before EOF” error browser objects (JavaScript), 102–110 message, 294 hierarchy, 104–105 “Can’t Location function in @INC” error message, 295 identifiers, 105–110 can_write() method, in IO::Seekable module browsers, 2 (Perl), 747 ActiveX support by, 17 CAPTION object (JavaScript), 524–525 Cascading Style Sheets support in, 9 Carp module (Perl), 672–673 connection with server, 13 carpout() function (Perl), 674–675 providing for older, 69–70 carriage return, 235 support for cookies, 198–199 Cascading Style Sheets (CSS), 8–9 support for JavaScript, 2, 56 case, 29 bugs. debugging Perl See of data, translations for Unicode business software, application framework characters, 366 for, 24 case sensitivity Button object (JavaScript), 103, 522–523 in JavaScript, 29 of form object (JavaScript), 142, 144 in Perl, 237 properties, 145 in Unix, 259 BUTTON object (JavaScript), 523–524 catch, 29 bval option for Berkeley DB, 705–706 catdir method byte, 29 in File::Spec::Mac module (Perl), bytes pragma, 366, 371–372, 672 727–728 4213indx.qxd 4/19/03 8:50 PM Page 805

catfile method—classes, for COM objects 805

in File::Spec::Unix module (Perl), 729 to respond to HTML form, in File::Spec::VMS module (Perl), 731 432–435, 433 catfile method to return JavaScript, 219–221 in File::Spec::Mac module (Perl), 728 sending form data to, 160–161 in File::Spec::Unix module (Perl), 729 shell script example, 211–213, 214 in File::Spec::VMS module (Perl), 731 when to use, 202 in File::Spec::Win32 module (Perl), 732 CGI::Carp module (Perl), 673–675 cd command (Unix), 259 CGI::Cookie module (Perl), 676–679 cd command (Windows), 255 char, 29 CDATA, 68 char data type (SQL), 460 ceil() method, of Math object (JavaScript), char() function (Perl), 365 51, 121, 576 characters, specifying Unicode, 364–365 CENTER object (JavaScript), 525–526 charAt() method, of String object (JavaScript), CGI. See Common Gateway Interface (CGI) 47, 125, 605 cgi-bin directory, 272 charCodeAt() method, of String object (JavaScript), 605 CGI (Common Gateway Interface), 14–15 charnames pragma, 365 connection with Perl and HTTP, 225 chdir function (Perl), 634 output vs. standard output, 242 checkAnswers() function in quiz program, 194 and Perl, 224, 240–244 checkbox input type, of HTML form, 347 registration form, 274–278, 275 checkbox object (JavaScript), 526–527 URLs and, 349–356 of form object (JavaScript), 103, 142, 144 web server configuration for, 272–274 properties, 145 what it is, 243–244, 267–268 checked property CGI scripts of Checkbox object (JavaScript), 526 debugging, 317–320 of Radio object (JavaScript), 591 adding print statements, 318–320 child object type, 95 general design, 210–211 Chimera, support for JavaScript, 2 how they work, 202–210, 203, chmod command (Unix), 260–261, 281 282–286 chmod function (Perl), 635 command-line arguments, chomp function (Perl), 412, 635 203–204 chop function (Perl), 635–636 environment variables, 204–207 chown function (Perl), 636 sending data to Web server, chr function (Perl), 636 209–210 chroot function (Perl), 636 standard input and output streams, 207–208 CITE object (JavaScript), 527–528 installing, 280–282 Clark, James, 484 interfacing JavaScript with, class, 29 215–218, 217 classes, for COM objects, 16 4213indx.qxd 4/19/03 8:50 PM Page 806

806 classification—conditional breakpoints

classification color constants, 128 and inheritance, 96 colorDepth property, of screen object JavaScript and, 98 (JavaScript), 599 Class::Struct module (Perl), 679–680 COM (Component Object Model), 16 CLEAR method COM library, 16 in Tie::Array module (Perl), 787 command buffer, for saving previous commands, 258 in Tie::Hash module (Perl), 790 command-line arguments, 255 clearInterval() method, of window object (JavaScript), 628 for CGI, 15, 203–204 clearTimeout() method, of window object command-line interface, running Perl scripts (JavaScript), 628 from, 254–258 click() method commands, visitor entry in guest books, 396 of Button object (JavaScript), 523 COMMENT object (JavaScript), 530–531 of Checkbox object (JavaScript), 527 comments of form elements, 146 to hide scripts, 61, 65, 67 of Radio object (JavaScript), 592 in JavaScript, 29, 73 of Reset object (JavaScript), 594 in Perl, 231, 234, 267, 299 of Submit object (JavaScript), 612 Common Gateway Interface (CGI). See CGI (Common Gateway Interface); CGI scripts client/server interface model, 268–269 Common Log Format, 402–403, 403 client-side processing of forms, 159–160 comparison operators, in JavaScript, 36–37 clientInformation object (JavaScript), 528 compile() method, of RegExp object clipboardData object (JavaScript), 528 (JavaScript), 593 close function (Perl), 327, 329, 636 compiled languages, 228 Close method, of Mail::Sender, 448, 450 compiler, 251 close() method compiling Perl interpreter, 230 of document object (JavaScript), 543 complete property, of Image object in Net::Ping module (Perl), 759 (JavaScript), 561 of window object (JavaScript), 110, 628 complex numbers, Math::Complex module closed property, of window object (Perl) for, 751–753 (JavaScript), 627 Component Object Model (COM), 16 closedir function (Perl), 417, 637 Comprehensive Perl Archive Network closelog function, in Sys::Syslog module (CPAN), 229. See also CPAN (Comprehensive (Perl), 773 Perl Archive Network) closing files in Perl, 327–328 concat() method closing tag, 5 of Array object (JavaScript), 112, 514 cntrl Posix class, 369 of String object (JavaScript), 125, 605 CODE object (JavaScript), 529 concatenation operator (+), 31 COL object (JavaScript), 529–530 concatenation operator (.) in Perl, 409 COLGROUP object (JavaScript), 530 conditional breakpoints, 312, 313 4213indx.qxd 4/19/03 8:50 PM Page 807

conditional statements—databases 807

conditional statements, 264 correct() function in quiz program, 195 testing in Perl, 300–301 cos function (Perl), 637 confirm box, in JavaScript, 53, 54 cos() method, of Math object (JavaScript), confirm() method, of window object 51, 121, 576 (JavaScript), 628 count() method, in IO::Seekable module connect() function, 457 (Perl), 747 connect function (Perl), 637 counter. See visitor access counter Perl script const, 29 cp command, 262 constant pragma, 680–681 CPAN (Comprehensive Perl Archive Network), 229, 681–682 constants in Perl, 393–394 Data::Dumper module, 320 constructor property to install DBI module, 456 of Function object (JavaScript), 553 CREATE statement (SQL), 460–461, 463, 467 of Number object (JavaScript), 582 create_tables subroutine, 466 of Object object (JavaScript), 124 crypt function (Perl), 637 of String object (JavaScript), 605 CSS (Cascading Style Sheets), 8–9 Content-type header, 209, 285 CONTENT_LENGTH environment curdir method variable, 204 in File::Spec::Mac module (Perl), 728 CONTENT_TYPE environment variable, 204 in File::Spec::Unix module (Perl), 730 continue (c) command (Perl debugger), 312 in File::Spec::VMS module (Perl), 731 continue statement (JavaScript), 29, 46 current directory (.), 418 control statements in Perl, 266–267 current working directory, 682 cookie property, of document object currentStyle object (JavaScript), 531–532 (JavaScript), 185, 542 custom object (JavaScript), 532–533 cookies, 168, 181–197 cwd() function (Perl), 683 vs. hidden form fields, 198–199 Cwd module (Perl), 682–683 information storage in, 182–184 in JavaScript, 85–88, 184–197, 187, 189 alerts from, 87, 87 D persistent cookies, 88 Data Source Name (DSN), 457 quiz program, 188 _DATA_ token, 765–766 quiz program code listing, data types, for SQL CREATE statement, 190–193 460–461 quiz program source file, database handle, 457 195–197 mysql_insertid property of, 473 session cookies, 86–87 Database Interface (DBI), 454 Perl module for, 676–677 installing, 455–456 copying files databases, 384–385. See also MySQL File::Copy module for, 720–721 database; SQL (Structured Query Language) between Windows and Unix, 281 basic operations, 453 4213indx.qxd 4/19/03 8:50 PM Page 808

808 Data::Dumper module—default variables in Perl

CGI for accessing, 268 debugger for Perl, 307–316 DB_File module to access, 691–712 breakpoints, 312–313 mysqladmin command to create, 455 code execution, 311–312 Data::Dumper module, 320, 683–691 help for, 309, 309 dataTransfer object (JavaScript), 533 quitting, 314–315 date and time stamp in log, time zone running, 308, 308–315 value in, 403 source code display, 309–311, 310 Date() constructors, 116 viewing program data, 313–314, 314 Date data type (SQL), 461 debugging Perl, 289–320 Date object (JavaScript), 52–53, 114–117, CGI scripts, 317–320 117, 533–537 adding print statements, DB<1> (debug prompt), 308 318–320 DB_BTREE file format, 693, 697–701 test data, 317–318 DBD (database driver), for DBI, 456 error avoidance, 297–304 DB_File module (Perl), 692–712 coding practices, 299–300 API interface, 709–712 common mistakes, 301–304 DB_BTREE file format, 697–701 testing, 300–301 DB_HASH file format, 696–697 variable spelling, 298–299 DB_RECNO, 705–709 warning messages, 298 description, 692–693 print statements for, 306 matching partial keys, 703–705 runtime errors, 304–307 methods, 701–703 system error variable, del_dup() method, 703 305–306, 306 find_dup() method, 702–703 syntax errors, 289, 290–297 get_dup() method, 701–702 error messages, 293–297 synopsis, 692 line numbers in messages, 293 use with Berkeley DB Version 2, pinpointing, 290, 290–293 693–696 Decimal data type (SQL), 461 DB_HASH file format, 693, 696–697 declared subroutine, 265 DBI (Database Interface), 454 declaring variables, 30 installing, 455–456 decodeURI() method, of Global object DBIx::XML_RDB module, 502–503 (JavaScript), 120 DB_RECNO file format, 693, 705–709 decodeURIComponent() method, of Global DD object (JavaScript), 537 object (JavaScript), 120 debug method (Perl Benchmark module), 670 decoding query string, 355–356 debug prompt (DB<1>), 308 default, 29 $DEBUG variable, 306 in switch structure, 39 debugger, 29 default error message, 675 ActiveState, 315, 315–317 default variables in Perl, 303 4213indx.qxd 4/19/03 8:50 PM Page 809

Default Web Site Properties dialog box, Web Site tab—DT object (JavaScript) 809

Default Web Site Properties dialog box, dir command, 255–257 Web Site tab, 404, 404 DIR object (JavaScript), 539–540 defaultChecked property directories, 255 of Checkbox object (JavaScript), 526 current working, 682 of Radio object (JavaScript), 591 of log files, counting hits on, defaultSelected property, of Option object 417–422, 421 (JavaScript), 585 in Unix, 259–260 defaultStatus property, of window object directory node, 257 (JavaScript), 627 directory tree, 257 defaultValue property DirHandle module (Perl), 713–714 of Password object (JavaScript), 587 dirname() routine, 718 of Text object (JavaScript), 615 disconnect() method, 457 of Textarea object (JavaScript), 615 displayAnswers() function in quiz defined function (Perl), 637 program, 194 defined subroutine, 265 distributed applications, 24 del command, 258 DIV object (JavaScript), 540 DEL object (JavaScript), 538 DL object (JavaScript), 541 del_dup() method, in DB_File module do, 29 (Perl), 703 do() method, 461 delete, 29 do while loop (JavaScript), 42–43 delete function (Perl), 637–638 document object (JavaScript), 103, 541–544 DELETE method, in Tie::Hash module (Perl), 790 accessing form by referencing, 143 DELETE statement (SQL), 459–460 bgColor property of, 100 deleting cookie property of, 185 breakpoints, 312 forms property of, 143 database records, 481–482 (DOM), 19 directories and files, 258 for processing XML, 497–501 properties and methods, 139–140 document property, of window object (JavaScript), 627 deprecated functions, 296 document root, 272 design process for program, 324, 324–325 dollar sign ($), for scalars, 237 DESTROY method domain property, of document object in Tie::Array module (Perl), 787 (JavaScript), 542 in Tie::Handle module (Perl), 789 domain=DOMAIN_NAME field, in in Tie::Scalar module (Perl), 793 Set-Cookie header, 184 DFN object (JavaScript), 538–539 DOSKEY command, 258 diagnostics pragma, 712–713 double, 29 dictionary file, searching, 764 double quote, 235, 236 die function (Perl), 305, 384, 638 DSN (Data Source Name), 457 digit Posix class, 369 DT object (JavaScript), 544 4213indx.qxd 4/19/03 8:50 PM Page 810

810 e-mail—European Computer Manufacturing Association (ECMA)

encodeURI() method, of Global object E (JavaScript), 120 e-mail encodeURIComponent() method, of Global programs and protocols, 426–429 object (JavaScript), 120 sendmail, 426 encoding property, of form object SMTP servers, 427–429 (JavaScript), 142, 551 Unix solutions, 429–439 enctype property, of form object (JavaScript), 142 CGI scripts to respond to HTML form, 432–435, 433 end of array, testing in Perl, 300 mailing list application, 435–439 end-of-line character, removing from string, 412 registration form, 429–435, 430 ending tag, 5 Windows solutions, 439–451 endQuiz() function in quiz program, 195 Blat, 439–444, 444 English module (Perl), 714–716 Mail::Sender, 444–451 enum, 29 e-mail addresses Enumerator object (JavaScript), 546 in Perl, 296 @ENV array (Perl), 336 validating, 81 Env module (Perl), 716 E property, of Math object (JavaScript), 51, 121, 575 environment variables, 244 each function (Perl), 638–639 for CGI, 15, 204–207 -query CGI script, 211–213, 214 Env module to reference, 716 ECMA (European Computer Manufacturing Perl program to display, 249–250, 250 Association), 17 Perl program to display in alphabetic ECMAScript, 17, 18–19 order, 263, 263 editors, for programming, 262–263 eof function (Perl), 639 elements array, 103 eq operator, 337 of form object (JavaScript), 142, 144 error messages length property of, 109 diagnostics pragma for more detailed, 712–713 elements property, of Form object (JavaScript), 551 in Perl, 293–297 else statement (JavaScript), 29, 40 Error object (JavaScript), 546–547 EM object (JavaScript), 544–545 errstr() method, 462 “Emacs support available” message, 308 escape character (\), 235 EMBED object (JavaScript), 103, 545–546 for literal @ signs, 296 embedding JavaScript, 60–64 sequences for Unicode, 367 embeds array, 103 escape() function (JavaScript), 206 embeds property, of document object escape() method, of Global object (JavaScript), 542 (JavaScript), 120, 554 encapsulation, 95 European Computer Manufacturing Association (ECMA), 17, 28 JavaScript and, 98 4213indx.qxd 4/19/03 8:50 PM Page 811

eval() method, of Global object (JavaScript)—File::CheckTree module (Perl) 811

eval() method, of Global object (JavaScript), Extensible Markup Language (XML). 120, 554 See XML (Extensible Markup Language) event handlers in JavaScript, 18, 58, 71–85 Extensible Style Language (XSL), 23 for forms, 149–159 extensions to HTML, 8 responding to user actions, external files, for JavaScript functions, 150–159 68–69 onclick and onchange events, 77–79 external object (JavaScript), 548 onload, 81–85 external viewers, 9–10 onmouseover and onmouseout events, extranet applications, 24 71–77 onsubmit, 79–81 event object (JavaScript), 103, 140, F 547–548 false, 29 Event object (JavaScript), 103 fast_abs_path() function (Perl), 683 events, in JavaScript, 57 fastcwd() function (Perl), 682–683 exceptions, raised by XML::Parser, 493–494 fcntl function (Perl), 640 exclamation point (!), in Unix, 234 Features command, in Term::ReadLine exec() method, of RegExp object module (Perl), 778 (JavaScript), 593 FETCH method exists function (Perl), 639 in Tie::Array module (Perl), 787 exists() method, in IO::Seekable module in Tie::Hash module (Perl), 790 (Perl), 747 in Tie::Scalar module (Perl), 793 EXISTS method, in Tie::Hash module fetchrow_array() method, 462 (Perl), 790 fetchrow_arrayref() method, 462 exit function (Perl), 639 fetchrow_hashref() method, 462, 477 exp function (Perl), 639 FETCHSIZE method, in Tie::Array module exp() method, of Math object (JavaScript), (Perl), 787 51, 121, 576 fgColor property, of document object expand() utility (Unix), 784 (JavaScript), 542 Expat XML processing library, 484 FIELDSET object (JavaScript), 548–549 expiration date, for cookies, 88, 676–677 file extensions, 260 expires=DATE field, in Set-Cookie header, file handles 183–184 IO::Handle module to use, 742–743 export, 29 SelectSaver module to save and restore, expressions, 266 764–765 EXTEND method, in Tie::Array module file permissions, 260–261 (Perl), 787 file types, helper applications for, 9–11 extends, 29 File::Basename module (Perl), 716–718 Extensible Hypertext Markup Language (XHTML). See XHTML (Extensible FileCache module (Perl), 734–735 Hypertext Markup Language) File::CheckTree module (Perl), 719 4213indx.qxd 4/19/03 8:50 PM Page 812

812 File::Compare module (Perl)—foreach statement (Perl)

File::Compare module (Perl), 719–720 final, 30 File::Copy module (Perl), 720–721 finally, 30 File::DosGlob module (Perl), 721–722 FindBin module (Perl), 738–739 File::Find module (Perl), 722–724 findConsole command, in Term::ReadLine FileHandle module (Perl), 735–738 module (Perl), 778 file_name_is_absolute method find_dup() method, in DB_File module (Perl), 702–703 in File::Spec::Mac module (Perl), 728 first function, in List::Util module (Perl), in File::Spec::Unix module (Perl), 730 748–749 in File::Spec::VMS module (Perl), 731 FIRSTKEY method, in Tie::Hash module fileno function (Perl), 640 (Perl), 790 fileparse() routine, 717–718 fixed() method, of String object (JavaScript), fileparse_set_fstype() routine, 717 47, 605 File::Path module (Perl), 724–725 float, 30 files floating-point numerals, Math::BigFloat module (Perl) for, 750 copying between Windows and Unix, 281 flock function (Perl), 640 deleting, 258 floor() method, of Math object (JavaScript), 51, 121, 576 IO::File module to access, 740–742 focus() method sending contents as e-mail message, 440 of Button object (JavaScript), 523 files in Perl, 325–332 of Checkbox object (JavaScript), 527 file handles, 328 of FileUpload object (JavaScript), 550 functions, 326–327 of form elements, 146 input, output, 328–329 of Radio object (JavaScript), 592 opening and closing files, 327–328 of Reset object (JavaScript), 594 print statements, 330–331 of Select object (JavaScript), 601 File::Spec module (Perl), 725–726 of Submit object (JavaScript), 612 File::Spec::Mac module (Perl), 726–728 of Text object (JavaScript), 616 File::Spec::OS2 module (Perl), 729 of Textarea object (JavaScript), 616 File::Spec::Unix module (Perl), 729–730 of window object (JavaScript), 628 File::Spec::VMS module (Perl), 730–731 FONT object (JavaScript), 550–551 File::Spec::Win32 module (Perl), 731–732 fontcolor() method, of String object File::stat module (Perl), 732–733 (JavaScript), 47, 606 File::Temp module (Perl), 733–734 fontsize() method, of String object FileUpload field, of form object (JavaScript), 47, 48, 606 (JavaScript), 144 for, 30 properties, 145 for ... in loop (JavaScript), 43–44, 45 FileUpload object (JavaScript), 103, 142, for loop (JavaScript), 40–41 549–550 for statement (Perl), 394 filters, to limit guest book entries, 397–398 foreach statement (Perl), 304 4213indx.qxd 4/19/03 8:50 PM Page 813

fork function (Perl)—getDay() method, of Date object (JavaScript) 813

fork function (Perl), 640 forms property, of document object form-feed, 235 (JavaScript), 143, 542 form object, 142–143 forward declaration, 667 METHOD attribute of, 160 forward() method, of History object (JavaScript), 557 Form object (JavaScript), 551–552 “found = in conditional, should be ==” form property warning message, 297 of Checkbox object (JavaScript), 526 frame object (JavaScript), 103, 552 of FileUpload object (JavaScript), 549 frames of Hidden object (JavaScript), 556 to automate URL, 339–341 of Password object (JavaScript), 587 event handler to prevent page of Radio object (JavaScript), 591 loading in, 82, 82–84 of Reset object (JavaScript), 593 frames array, 103 of Select object (JavaScript), 601 frames property, of window object of Submit object (JavaScript), 611 (JavaScript), 627 of Text object (JavaScript), 616 FRAMESET object (JavaScript), 552–553 of Textarea object (JavaScript), 616 fromCharCode() method, of String object form tag (HTML), 282 (JavaScript), 125, 605 format function (Perl), 641 function, 30 formobject object, 103 Function object (JavaScript), 118–119, forms array, 103 553–554 length property of, 109 functions, 265 forms in HTML, 344, 344–349 in JavaScript, 28, 57 accessing in JavaScript, 143 creating, 65–66 basic code, 345–347, 346 in VBScript, 28 CGI scripts, 160–165 to process data, 210–211 to send data, 160–161 G GATEWAY_INTERFACE environment client-side processing, 159–160, variable, 204 161–165 GET request methods, 13–14, 160, data coding, 206–207 271, 272 data processing options, 141 vs. POST, 347, 348 elements of, 144–149 URL encoding with, 352–354 event handlers, 149–159 getc function (Perl), 641 hidden object, 168, 169–170 GETC method, in Tie::Handle module JavaScript and, 170–180, (Perl), 789 171, 172 getDate() method, of Date object link destinations on, 78–79 (JavaScript), 52, 114, 534 submitting, 347–349 getDay() method, of Date object (JavaScript), validating input, 79–81 52, 115, 534 4213indx.qxd 4/19/03 8:50 PM Page 814

814 get_dup() method, in DB_File module (Perl)—graphical user interface

get_dup() method, in DB_File module (Perl), getpwuid() function, object-oriented 701–702 interface to, 798 getFullYear() method, of Date object getSeconds() method, of Date object (JavaScript), 115, 534 (JavaScript), 52, 115, 534 getgrent() function, object-oriented getservbyname() function, object-oriented interface to, 797 interface to, 761 getgrname() function, object-oriented getservent() function, object-oriented interface to, 797 interface to, 761 getgruid() function, object-oriented getTime() method, of Date object interface to, 797 (JavaScript), 52, 115, 535 gethostbyaddr() function, object-oriented getTimeZoneOffset() method, of Date object interface to, 753–754 (JavaScript), 52, 115, 535 gethostbyname() function, object-oriented getUTCDate() method, of Date object interface to, 753–754 (JavaScript), 114, 535 getHours() method, of Date object getUTCDay() method, of Date object (JavaScript), 52, 115, 534 (JavaScript), 115, 535 getlogin function (Perl), 641 getUTCFullYear() method, of Date object getMilliseconds() method, of Date object (JavaScript), 115, 535 (JavaScript), 115, 534 getUTCHours() method, of Date object getMinutes() method, of Date object (JavaScript), 115, 535 (JavaScript), 52, 115, 534 getUTCMilliseconds() method, of Date object getMonth() method, of Date object (JavaScript), 115, 535 (JavaScript), 52, 115, 534 getUTCMinutes() method, of Date object getnetbyaddr() function, object-oriented (JavaScript), 115, 535 interface to, 755–757 getUTCMonth() method, of Date object getnetbyname() function, object-oriented (JavaScript), 115, 535 interface to, 755–757 getUTCSeconds() method, of Date object getnetbyport() function, object-oriented (JavaScript), 115, 535 interface to, 760, 761 getYear() method, of Date object getNumberValue() function in quiz (JavaScript), 52, 115, 535 program, 194 glob function (Perl), 642 getpeername function (Perl), 641 Global object (JavaScript), 119–120, getpgrp function (Perl), 641 554–555 getppid function (Perl), 641 global variables, 30 getpriority function (Perl), 641 gmtime function (Perl), 642 getprotobyname() function, object-oriented go() method, of History object interface to, 760 (JavaScript), 557 getprotoent() function, object-oriented goto, 30 interface to, 760 goto function (Perl), 642 getpwent() function, object-oriented GRANT statement (SQL), 455 interface to, 798 graph Posix class, 370 getpwnam() function, object-oriented graphical user interface, 3 interface to, 798 4213indx.qxd 4/19/03 8:50 PM Page 815

graphics—host property 815

graphics HEAD request method, 14, 271 onmouseover and onmouseout events tag, 6 for swapping, 74–77 JavaScript function in, 64–68 visitor entry in guest books, 396, 397 link to script file, 69 Greenwich Mean Time (GMT), 403 headers, from CGI programs, 209–210 grep function (Perl), 642–643 height property guest book for website of Image object (JavaScript), 561 adding entries, 379–388 of screen object (JavaScript), 600 design, 376, 376–379 help, for Perl debugger, 309, 309 displaying, 388–395 helper applications, 9–11 with Perl, 389–392, 393 here document, 381 entry page, 378 heredoc operator (<<), 284 security, 395–398 hex function (Perl), 359, 643 gvim, 263 hexadecimal, 32 of encoded characters, 350 H for Unicode characters, 364–365 tag, 6 hexadecimal numbering, 351–352 handle hidden form fields, 168, 169–170 for database, 457 vs. cookies, 198–199 for files, 328 JavaScript and, 170–180, 171, 172 handles() method code listing, 174–175, 176–177, 178–180 in IO::Pipe module (Perl), 745 hidden input type, in HTML form, 347 in IO::Seekable module (Perl), 747 Hidden object (JavaScript), 103, Hangman game, 151–159, 152, 153 556–557 arrays and functions explained, of form object (JavaScript), 143, 144 157–159 properties, 145 code listing, 154–156 History object (JavaScript), 557 has_error() method, in IO::Seekable module (Perl), 747 history property, of window object (JavaScript), 627 hash property hit counter analysis, 415–417 of Link object (JavaScript), 570 counting hits on entire log directory, of Location object (JavaScript), 572 417–420 hashes, 283–284, 416, 465 placement on web page, 422–424, 424 Tie::RefHash module (Perl) for for whole directory, 421–422 references as, 791–792 Hn object (JavaScript), 555 Hash::Util module (Perl), 739–740 host property hasOwnProperty() method, of Object object (JavaScript), 124 of Link object (JavaScript), 570 HEAD object (JavaScript), 556 of Location object (JavaScript), 573 4213indx.qxd 4/19/03 8:50 PM Page 816

816 hostname of system, module to obtain—index function (Perl)

hostname of system, module to obtain, 772 hostname property I I object (JavaScript), 559 of Link object (JavaScript), 570 icmp protocol, for ping, 758, 759 of Location object (JavaScript), 573 if $DEBUG clause, 306 HotJava, 19 if statement (JavaScript), 30, 39–40 support for JavaScript, 2 shortcut, 40 HP-UX, 253 for swapping images, 76 HR object (JavaScript), 557–558 ifconfig, 336 href attribute, of link object, 109 IFRAME object (JavaScript), 559–560 href property image input type, of HTML form, 347 of Link object (JavaScript), 570 image maps, server-side queries, 211 of Location object (JavaScript), 573 image object (JavaScript), 103, 560–561 hspace property, of Image object (JavaScript), 561 Image object (JavaScript), 561–562 HTML (Hypertext Markup Language), 5–9, images. See graphics 224. See also forms in HTML images array, 103 development, 7–8 images property, of document object to display hit counter analysis, (JavaScript), 542 422–424, 424 tag, setting up for rollovers, 74 e-mail form, 430, 430–432 immutable, 266 sample document, 6, 7 implements, 30 tables, 378–379 import, 30 XML::Parser to convert to, in, 30 485–493, 493 IN command, in Term::ReadLine module HTML object (JavaScript), 558–559 (Perl), 778 tag, 6 INADDR_ANY function, in Socket module HTTP_* environment variable, 204 (Perl), 768 HTTP (Hypertext Transfer Protocol), 3–4, 4, INADDR_BROADCAST function, in Socket 13–14, 224, 269–272 module (Perl), 768 connection with CGI and Perl, 225 INADDR_LOOPBACK function, in Socket module (Perl), 768 HTTP ISINDEX queries, 204 INADDR_NONE function, in Socket module HTTP-NG, 14 (Perl), 769 hyperlinks @INC array, 295 A (Anchor) object (JavaScript), incorrect() function in quiz program, 195 508–509 incrementing to invoke CGI programs, 211 visitor access counter Perl script, 330 Link object (JavaScript) to represent, 570–571 conditional statements, 335–337 Hypertext Transfer Protocol (HTTP), 3–4, 4, indentation, in Perl, 300 13–14 index function (Perl), 643 4213indx.qxd 4/19/03 8:50 PM Page 817

index property, of Option object (JavaScript)—JavaArray object (JavaScript) 817

index property, of Option object interface, 30 (JavaScript), 585 for COM objects, 16 indexOf() method, of String object (JavaScript), 47, 125, 606 scripting capability, 18 inet_aton function, in Socket module (Perl), 768 support for JavaScript, 2 inet_ntoa function, in Socket module (Perl), 768 Internet Information Server, 18 Infinity property, of Global object log files, 401–402, 402 (JavaScript), 119, 554 location, 400 information hiding, 95 Internet Protocol (IP), 3 JavaScript and, 98 Internet Service Manager, 404 inheritance, 95–97 Internet Service Providers, e-mail JavaScript and, 98 policies, 443 initialization, 30 interpreted language, Perl as, 228, 251–252 input in Perl, redirecting, 329–330 intranets, 23–24 INPUT object (JavaScript), 563 IO class loader (Perl), 740 input property, of RegExp object ioctl function (Perl), 643 (JavaScript), 593 IO::File module (Perl), 740–742 input to forms, validating, 79–81 IO::Handle module (Perl), 742–743 INPUT TYPE attribute, of HTML form, 346 IO::Pipe module (Perl), 743–745 INS object (JavaScript), 563 IO::Seekable module (Perl), 745–748 INSERT statement (SQL), 454, 458–459 IP (Internet Protocol), 3 installing isFinite() method, of Global object Blat, 439–440 (JavaScript), 120, 554 CGI scripts, 280–282 ISINDEX object (JavaScript), 564 DBI (Database Interface), 455–456 ISINDEX queries, 210 MySQL database, 454–455 isNaN() method, of Global object (JavaScript), 120, 555 Perl modules, CPAN for, 681–682 isPrototypeOf() method, of Object object instance hierarchy, 105 (JavaScript), 124 instanceof, 30 italics() method, of String object instances, 93–94 (JavaScript), 47, 48, 606 creating, 102 instantiable object types, 134 instantiation of objects, JavaScript and, 99 J instruction pointer location, 316 Java applets, 15–16 int, 30 java object (JavaScript), 564–565 int function (Perl), 643 Java Server API, 20 Integer data type (SQL), 460 Java Virtual Machine, 27 integers, Math::BigInt module (Perl) for, Java, vs. JavaScript, 18, 27 750–751 JavaArray object (JavaScript), 565 4213indx.qxd 4/19/03 8:50 PM Page 818

818 JavaClass object (JavaScript)—kill function (Perl)

JavaClass object (JavaScript), 565 objects, 33. See also specific objects JavaObject object (JavaScript), 565–566 operators, 36–38 JavaPackage object (JavaScript), 566 arithmetic, 37 JavaScript, 16 assignment, 38 adding to document, 59–70 comparison, 36–37 adding function to document logical, 37 head, 64–68 unary operators, 37–38 embedding, 60–64 program flow, 38–40 linking, 68–69 else statement, 40 providing for older browsers, if statement, 39–40 69–70 if statement shortcut, 40 arrays, 33–36 switch statement, 38–39 complex, 35–36 repeating code, 40–46 methods, 36 for ... in loop, 43–44, 45 simple, 33–35 break and continue, 46 boxes for user communication, 53–54 do while loop, 42–43 alert box, 53, 53 for loop, 40–41 confirm box, 53, 54 prompt box, 54, 54 while loop, 42 browser support for, 2 syntax, 28–29 CGI scripts to return, 219–221 variables, 29–33 color constants, 128 creation, 30 comments in, 29, 73 and reserved words, 29–30 comments to hide scripts, 61, 65, 67 types, 31–33 cookies, 85–88 what it is, 56–59 persistent cookies, 88 JavaScript Style Sheets, 9 session cookies, 86–87 JavaServer Pages (JSP), 20 event handlers, 71–85 join function (Perl), 643 onclick and onchange events, join method, in File::Spec::Unix module 77–79 (Perl), 730 onload, 81–85 join() method, of Array object (JavaScript), 36, 112, 514 onmouseover and onmouseout events, 71–77 JScript, 18, 28 onsubmit, 79–81 JSP (JavaServer Pages), 20 history, 17–19 interface with CGI scripts, 215–218 vs. Java, 18, 27 K KBD object (JavaScript), 566 object-based programming features, 98–99 keys function (Perl), 644 object model, 99–102 kill function (Perl), 644 4213indx.qxd 4/19/03 8:50 PM Page 819

Knuth, Donald—lock_value function, in Hash::Util module (Perl) 819

Knuth, Donald, The Art of computer LINK object (JavaScript), 571 Programming, volume 3, 783 linkColor property, of document object Krynicky, Jan, 445 (JavaScript), 542 linker, 251 L linking JavaScript, 68–69 links. See hyperlinks l command (Perl debugger), 310 links array, 103 LABEL object (JavaScript), 567 length property of, 109 language-sensitive editors, 262–263 links property, of document object last function (Perl), 422, 644 (JavaScript), 542 lastIndex property, of RegExp object Linux, 253 (JavaScript), 593 lastIndexOf() method, of String object list context, 302 (JavaScript), 47, 125, 606 listen function (Perl), 645 lastModified property, of document object LISTING object (JavaScript), 572 (JavaScript), 542 lists in Perl, 238–240 Layer object (JavaScript), 567–568 strings, 240 lc function (Perl), 644 List::Util module (Perl), 748–749 lcfirst function (Perl), 644 literal characters, 350–351 LEGEND object (JavaScript), 568–569 LiveScript, 17 length function (Perl), 371, 644 LN2 property, of Math object (JavaScript), length property 51, 121, 575 of elements array, 109 LN10 property, of Math object (JavaScript), of form object (JavaScript), 143, 551 51, 121, 575 of forms array, 109 local keyword, in Perl, 299, 303 of Function object, 118 local variables, 30 of links array, 109 localeCompare() method, of String object (JavaScript), 125 of Option object (JavaScript), 585 localhost, 12 of Select object (JavaScript), 601 localtime function (Perl), 394–395, 645 of String object (JavaScript), 125, 605 of window object (JavaScript), 627 Location header, 209 LI object (JavaScript), 569–570 Location object (JavaScript), 103, 572–573 line numbers, for errors in Perl, 293 location property, of window object link destinations, on forms, 78–79 (JavaScript), 627 link function (Perl), 644 lock_hash function, in Hash::Util module link() method, of String object (JavaScript), (Perl), 740 47, 606 lock_keys function, in Hash::Util module link object, 103 (Perl), 739 href attribute of, 109 lock_value function, in Hash::Util module Link object (JavaScript), 570–571 (Perl), 740 4213indx.qxd 4/19/03 8:50 PM Page 820

820 log files—Microsoft IIS log format

log files, 400–405 default parameters, 449 Common Log Format, 402–403, 403 failure codes, 449–450 extracting log information method syntax, 447–451 Perl to decode, 406–409 map function (Perl), 646 reading data from log file, 409–413 MAP object (JavaScript), 573–574 format selection, 403–405 markup, 5 IIS log entry format, 401–402, 402 MARQUEE object (JavaScript), 574–575 log function (Perl), 645 match() method, of String object log() method, of Math object (JavaScript), (JavaScript), 126, 606 51, 122, 576 Math object (JavaScript), 50–52, 120–122, LOG2E property, of Math object 575–576 (JavaScript), 52, 121, 575 methods, 50–51 LOG10E property, of Math object properties, 51–52 (JavaScript), 52, 575 Math::BigFloat module (Perl), 750 Logical data type (SQL), 461 Math::BigInt module (Perl), 750–751 logical operators, in JavaScript, 37 Math::Complex module (Perl), 751–753 long, 30 Matt’s Script Archive, 88 loops, 264 max function, in List::Util module (Perl), 749 testing in Perl, 300–301 max() method, of Math object (JavaScript), loose coupling, 95 51, 122, 576 loosely typed language, JavaScript as, 31 MAXLENGTH attribute, of text fields, lower Posix class, 370 379, 396 lowsrc property, of Image object maxstr function, in List::Util module (JavaScript), 561 (Perl), 749 ls command (Unix), 259 MAX_VALUE property, of Number object lstat function (Perl), 645 (JavaScript), 123, 582 lvalue, 266 Meerkat service, 505 MENU object (JavaScript), 576–577 M META object (JavaScript), 577 METHOD attribute m// operator, 645–646 of form object (JavaScript), 160 machine-readable format, 251 of HTML form, 346 MacLeod, Ken, 497 method property, of Form object MacOS, File::Spec::Mac module (Perl) for, (JavaScript), 143, 551 726–728 method request header, 271 MailFile() method, of Mail::Sender, 448, 451 mailing list application, in Unix, 435–439 methods MailMsg() method, of Mail::Sender, 448, 451 for COM objects, 16 Mail::Sender, 444–451 in JavaScript, 57, 92, 99, 101 communication with SMTP server, deleting, 139–140 446–447 Microsoft IIS log format, 405 4213indx.qxd 4/19/03 8:50 PM Page 821

MIME (Multipurpose Internet Mail Extensions)—name property 821

MIME (Multipurpose Internet Mail multidimensional array, 35–36 Extensions), 10–11 multipart/form-data encoding MIME type, 161 application/x-www-form-urlencoded, 161 multiple inheritance, 97 multipart/form-data encoding, 161 Multipurpose Internet Mail Extensions MimeType object (JavaScript), 103, 578 (MIME), 10–11 mimeTypes array, 103 mutable, 266 mimeTypes property, of navigator object my keyword, in Perl, 299, 303 (JavaScript), 105, 578 MySQL database min function, in List::Util module (Perl), 749 connecting Perl to, 457 min() method, of Math object (JavaScript), extending system, 482 51, 122, 576 installing, 454–455 MinLine command, in Term::ReadLine module (Perl), 778 interface creation, 467–473 minstr function, in List::Util module (Perl), 749 add_generic() method, 472–473, 481 MIN_VALUE property, of Number object (JavaScript), 123, 582 deleting records, 481–482 “Missing Comma after First Argument” error get_generic_multi() method, message, 295 469–471 “Missing Right bracket” error message, 294 get_generic_single() method, 471–472 “Missing semicolon in previous line” message, 294 new_record() method, 468 mkdir command, 256, 262 structure creation, 463–467 mkdir function (Perl), 646 viewing and updating tables, 463–482 mkpath function (Perl), 724 Web interface, 473–482 modularity, 95 mysqladmin command, 455 JavaScript and, 98 mysql_insertid property, of database handle, 473 monitoring Website activity. See also log files from web page, 413–424 counting hits on entire log N directory, 417–420 n (next) command (Perl debugger), 311 determining source and name attribute, of form object frequency of hits, 413–415 (JavaScript), 143 hit count placement on web page, NAME attribute, of HTML form, 346 422–424, 424 “name only used once: possible typo” hit counter analysis, 415–417 warning message, 297 hit counter analysis for whole name property directory, 421–422 of Checkbox object (JavaScript), 526 moving files, File::Copy module for, 720–721 of FileUpload object (JavaScript), 549 , support for JavaScript, 2 of Form object (JavaScript), 143, 551 MS-DOS window, opening, 254, 254–255, 255 of Hidden object (JavaScript), 556 Multi-Edit, 263 of Image object (JavaScript), 561 4213indx.qxd 4/19/03 8:50 PM Page 822

822 names—OBJECT object (JavaScript)

of Password object (JavaScript), 587 Navigator of Radio object (JavaScript), 591 cookies management, 85 of Reset object (JavaScript), 594 support for JavaScript, 2 of Select object (JavaScript), 601 netscape object (JavaScript), 579 of Submit object (JavaScript), 611 Net::servent module (Perl), 761–762 of Text object (JavaScript), 616 Net::SMTP, 444 of Textarea object (JavaScript), 616 new command of window object (JavaScript), 627 in Mail::Sender, 448, 450 names in Net::Ping module (Perl), 758–759 for JavaScript variables, 29 in Term::ReadLine module (Perl), 777 for Unicode characters, 365 new method (Perl Benchmark module), 670 name=value pairs new operator (JavaScript), 30, 33, 102, 134 breaking URL into, 355–356 for arrays, 34 for CGI program data, 206–207, newline character (\n), 235–236 353, 355 newTTY command, in Term::ReadLine in Set-Cookie header, 183 module (Perl), 779 NaN property next function (Perl), 421–422, 647 of Global object (JavaScript), 119, 554 next (n) command (Perl debugger), 311 of Number object (JavaScript), NEXTID object (JavaScript), 579 123, 582 NEXTKEY method, in Tie::Hash module National Center for Supercomputing (Perl), 790 Applications, 2 NOBR object (JavaScript), 579–580 native, 30 NOFRAMES object (JavaScript), 581 navigator object (JavaScript), 63, 104, 105, nonparsed header programs, 210 578–579 NOSCRIPT object (JavaScript), 581–582 mimeTypes property of, 105

object-oriented programming—operator mask 823

object-oriented programming, 93–97 programming features, 98–99 object types and instances, 93–94 RegExp object, 128, 592–593 creating, 94–97 String object, 46–50, 125–128, object re-use, 94 604–607 JavaScript and, 99 oct function (Perl), 647 tag, 16 offscreenBuffering property, of window object (JavaScript), 627 object types and instances, 57. See also properties of object OL object (JavaScript), 584–585 creating, 102 onchange event, for JavaScript, 77–79 defining in JavaScript, 128–137 onclick event, for JavaScript, 77–79 adding properties and methods, onload event, for JavaScript, 81–85 134–137 onmouseout event methods, 130–131 for JavaScript, 71–77 properties identification and for swapping images, 74–77 assignment, 129–130 onmouseover event Table object definition, 131–133 for JavaScript, 71–77 Table object use, 113–114 for swapping images, 74–77 deleting properties and methods, 139–140 onsubmit event, for JavaScript, 79–81 extending, 137–139 OOP. See object-oriented programming JavaScript and, 99 open function (Perl), 327, 647 what they are, 92–93 open() method objects in JavaScript, 33. See also form object of document object (JavaScript), 543 Array object, 111–113, 513–515 in IO::File module (Perl), 742 Boolean object, 114, 521–522 of Mail::Sender, 448 browser objects, 102–110 of window object (JavaScript), 106, 628 hierarchy, 104–105 opendir function (Perl), 417, 648 identifiers, 105–110 opener property, of window object (JavaScript), 627 Date object, 52–53, 114–117, 117, 533–537 opening files in Perl, 327–328 Event object, 140 opening tag, 5 event object, 547–548 openlog function, in Sys::Syslog module (Perl), 773 Function object, 118–119, 553–554 OpenMultipart method, of Mail::Sender, 448 Global object, 119–120, 554–555 Opera Browser, 19 Math object, 50–52, 120–122, 575–576 support for JavaScript, 2 methods, 50–51 operating systems properties, 51–52 executable programs for, 252 Number object, 123–124, 582 time tracking by, 388 Object object, 124–125, 583 operator mask, 763 4213indx.qxd 4/19/03 8:50 PM Page 824

824 operators—Perl

operators parent property, of window object in JavaScript, 36–38 (JavaScript), 627 arithmetic, 37 parse() method, of Date object (JavaScript), 52, 116, 535 assignment, 38 parseFloat() method, of Global object comparison, 36–37 (JavaScript), 120, 555 logical, 37 parseInt() method, of Global object unary operators, 37–38 (JavaScript), 120, 555 in Perl, 266 parser. See XML::Parser Option object (JavaScript), 585–586 Part method, of Mail::Sender, 448, 451 options property, of Select object password input type, of HTML form, 347 (JavaScript), 601 password object, 104 ord function (Perl), 365, 648 of form object (JavaScript), 143, 144 ORDER BY clause, in SQL SELECT properties, 145 statement, 458 Password object (JavaScript), 587–588 ornaments method, in Term::ReadLine module (Perl), 779 PATH environment variable, 244 OS/2, File::Spec::OS2 module (Perl) for, 729 Perl interpreter location and, 231 output in Perl, redirecting, 329–330 path method in File::Spec::Mac module (Perl), 728 in File::Spec::Unix module (Perl), 730 P in File::Spec::VMS module (Perl), 731 P object (JavaScript), of Option object PATH_INFO environment variable, 204 (JavaScript), 586 pathname, 255 p (print) command (Perl debugger), 313–314, 314 pathname property

tag, 6 of Link object (JavaScript), 570 pack function (Perl), 359, 384, 385–388, of Location object (JavaScript), 573 648–649 path=PATH field, in Set-Cookie template formats, 385–386 header, 184 package, 30 PATH_TRANSLATED environment variable, 205 Packages object (JavaScript), 586–587 pattern match in Perl, 645–646, 654 packaging objects, 95 percent sign (%), in URLs, 350 pack_sockaddr_in function, in Socket module (Perl), 769 Perl pack_sockaddr_un function, in Socket vs. C programming language, 227 module (Perl), 769 and CGI, 224, 240–244 panic error in Perl, 295 comments in, 231, 234 paradigm, 252 connecting to MySQL database, 457 parameters, for Perl functions, 234 connection with CGI and HTTP, 225 parent directory (..), 418 database systems built-in, 454 parent object type, 95 evolution of, 248–249 4213indx.qxd 4/19/03 8:50 PM Page 825

Perl modules—polymorphism 825

file manipulation, 325–332 special characters in, 235 file handles, 328 syntax, 264–267 functions, 326–327 components, 265–267 input, output, 328–329 program structure, 265 opening and closing files, 327–328 variables, 236–237 print statements, 330–331 Perl modules. See also Appendix C file test operators, 632–633 Mail::Sender, 444–451 for form data processing, 344, 344 Perl packages, file extension for, 383 history, 224–229 Perl support for Unicode and World Wide Web, 228–229 character conversions, 372 installing interpreter, 230 core support, 364–365 lists, 238–240 working with data, 366–372 loading interpreter, 230–231 case translations, 366 scalars, 237–238 data size traps, 371–372 script for visitor access counter, 322, regular expressions, 367–371 322–325 perldiag. file, 294 increment decision, 335–337 permissions, for Unix files, 260–261, 281 planning, 325 persistent cookies, 182 preparation for CGI, 332–338 in JavaScript, 88 refinement, 335 PHP, 22 running, 338–341 PI property, of Math object (JavaScript), 52, scripts. See also guest book for website 121, 575 creation, 229–236 pictures. See graphics to decode server log, 406–407 ping, 758–760 example, 249–250 pingecho() function, in Net::Ping module framework for test, 779–781 (Perl), 759 “Hello” example, 231–232, 232 pipes, IO::Pipe module for, 743–745 how they run, 233 PLAINTEXT object (JavaScript), 588–589 modifying, 263 platform property, of navigator object running, 254–262 (JavaScript), 578 running from command prompt, plug-ins, 9 254–258 Plugin object (JavaScript), 104, 589 running from Unix command shell, 258–262 plugins array, 104 using existing, 229 plugins property scripts for database interface, 473–482 of document object (JavaScript), 543 adding record, 480–481 of navigator object (JavaScript), 105, 578 editing existing record, .pm file extension, 383 477–479, 480 polymorphism, 97 listing records, 475–477 JavaScript and, 99 4213indx.qxd 4/19/03 8:50 PM Page 826

826 pop function (Perl)—prototype property

pop function (Perl), 650 program flow in JavaScript, 38–40 POP method, in Tie::Array module else statement, 40 (Perl), 787 if statement, 39–40 pop() method, of Array object, 112 if statement shortcut, 40 port property switch statement, 38–39 of Link object (JavaScript), 570 programmer’s editors, 262–263 of Location object (JavaScript), 573 programming languages portability, of Perl program, 252–253 evolution, 17 porting program between platforms, source code distribution, 248 228–229 programs. See also CGI scripts pos function (Perl), 650 basic activities, 264 positive logic, in Perl, 301 Hangman game, 151–159, 152, 153 POSITIVE_INFINITY property, of Number arrays and functions explained, object (JavaScript), 123, 582 157–159 Posix classes, 369–370 code listing, 154–156 POST method, 14, 160, 271 planning, 322–325, 324 vs. GET, 347 in Web documents, 3 pound sign (#), for Perl comments, 234, 267 prompt box, in JavaScript, 54, 54 pow() method, of Math object (JavaScript), prompt for debug (DB<1>), 308 51, 122, 576 prompt() method, of window object Practical Extraction and Report Language. (JavaScript), 628 See Perl properties of object, 57, 92 PRE object (JavaScript), 589–590 deleting, 139–140 Preferences menu of browser, 12 in JavaScript, 99, 100 print function (Perl), 234–235, 650 identifying and assigning, PRINT method, in Tie::Handle module 129–130 (Perl), 789 loop to examine, 43–44, 45 print (p) command (Perl debugger), 313 properties of Unicode characters, 367–369 print Posix class, 370 property_form() function, 477–479 print statements propertyIsEnumerable() method, of Object to create XML, 501 object (JavaScript), 124 in debugging process, 306, 318–320 protected, 30 for Perl file manipulation, 330–331 protocol property printable characters of Link object (JavaScript), 570 regular expression conversion to, 358 of Location object (JavaScript), 573 in URLs, 350–351 protocols, 3 printf function (Perl), 650–651 identifier in URL, 12–13 PRINTF method, in Tie::Handle module prototype property, 134 (Perl), 789 of Boolean object, 114 private, 30 of Function object (JavaScript), 118, 553 4213indx.qxd 4/19/03 8:50 PM Page 827

Proximity window—Registry window 827

of Number object (JavaScript), 123, 582 R of Object object (JavaScript), 124 r (return) command (Perl debugger), 312 of String object (JavaScript), 605 radio input type, of HTML form, 347 Proximity window in ActiveState Radio object (JavaScript), 104, 591–592 debugger, 316 of form object (JavaScript), 143, 144 public, 30 properties, 145 punct Posix class, 370 rand function (Perl), 651 punctuation variables in Perl, English random() method, of Math object module for aliases, 714–716 (JavaScript), 51, 101, 122, 576 push function (Perl), 295, 651 read function (Perl), 331–332, 393, 651 PUSH method, in Tie::Array module READ method, in Tie::Handle module (Perl), 787 (Perl), 789 push() method, of Array object, 112 readCookie() function in quiz program, pwd (print working directory) command 193, 194 (Unix), 259 readdir function (Perl), 417, 651 reader() method, in IO::Pipe module (Perl), 745 reading order of text block, 517–518 Q ReadLine command, in Term::ReadLine Q object (JavaScript), 590–591 module (Perl), 777 quantifiers in regular expressions, 360 readline command, in Term::ReadLine queries. See SQL (Structured Query module (Perl), 777 Language) READLINE method, in Tie::Handle module query string for form data, 349 (Perl), 789 decoding, 355–356 readlink function (Perl), 652 QUERY_STRING environment variable, 205, records, adding to SQL database, 458–459 206, 352 new_record() method for, 468 question() function in quiz program, 194 recv function (Perl), 652 QuickEval window in ActiveState debugger, redirecting input and output, 208, 208 316, 316 redo function (Perl), 652 quitting, Perl debugger, 314–315 reduce function, in List::Util module quotation marks (") (Perl), 749 in Perl, 235, 236 ref function (Perl), 652 for strings, 293–297 referrer property, of document object quote() method, 473 (JavaScript), 543 quote words, 391–392 RegExp object (JavaScript), 128, 592–593 quotemeta function (Perl), 651 registration form "ewords() function, 781 CGI for, 274–278, 275 qw() construct, 391–392 in Unix, 429–435, 430 “qw used commas in list” warning Registry window in ActiveState message, 297 debugger, 316 4213indx.qxd 4/19/03 8:50 PM Page 828

828 regular expressions—runtimeStyle object (JavaScript)

regular expressions, 226, 356–361, 357 reset object (JavaScript), 104, 593–594 details, 360–361 of form object, 143, 144 difficulty of, 359–360 properties, 145 English module and, 715–716 restartQuiz() function in quiz in JavaScript, 128 program, 195 special characters in, 361 return, 30 translations and substitutions, 357–359 return function (Perl), 653 for Unicode characters, 367–371 return (r) command (Perl debugger), 312 relational operators in Perl, 337 reverse DNS lookup, 403 relative pathname, 255 reverse function (Perl), 653 for directory creation, 257 reverse() method, of Array object (JavaScript), 36, 112, 514 remote scripting, 21 rewinddir function (Perl), 418, 653 REMOTE_ADDR environment variable, 205, 336 RFCs (Requests for Comments), 120 REMOTE_HOST environment variable, 205 RFC 821 for SMTP protocol, 426 REMOTE_IDENT environment variable, 205 Rich Site Summary (RSS) file, 503–505, 505 REMOTE_USER environment variable, 205 rindex function (Perl), 653 remove() method, in IO::Seekable module (Perl), 746 rm command, 262 removeBlanks() function in quiz rmdir command (DOS), 258 program, 194 rmdir command (Unix), 262 rename function (Perl), 652 rmdir function (Perl), 653 repeating code in JavaScript, 40–46 rmtree function (Perl), 725 for ... in loop, 43–44, 45 rollovers, 74–77 break and continue, 46 root node, 257 do while loop, 42–43 rootdir method for loop, 40–41 in File::Spec::Mac module (Perl), 728 while loop, 42 in File::Spec::Unix module (Perl), 730 replace() method, of String object in File::Spec::VMS module (Perl), 731 (JavaScript), 126, 606 round() method, of Math object (JavaScript), Request for Comments (RFCs), 120 51, 122, 576 RFC 821 for SMTP protocol, 426 RSS (Rich Site Summary) file, REQUEST_METHOD environment 503–505, 505 variable, 205 RT object (JavaScript), 594–595 require keyword, 294, 313 RUBY object (JavaScript), 595–596 reserved words, in JavaScript, 29–30 rule object (JavaScript), 596 reset function (Perl), 652–653 runtime errors in Perl, 304–307 reset input type, of HTML form, 347 system error variable, 305–306, 306 reset() method, of form object (JavaScript), runtimeStyle object (JavaScript), 142, 552 597–598 4213indx.qxd 4/19/03 8:50 PM Page 829

S object (JavaScript)—SendLine() method, of Mail::Sender 829

security S ActiveX and, 17 S object (JavaScript), 598 CGI acceptance of hidden field s/// operator, 654 contents, 170 s (step) command (Perl debugger), 311 cookies and, 182 s (substitute) function (Perl), 358 for HTML text fields, 395–398 Safe module (Perl), 762–764 sed, 226 SAMP object (JavaScript), 598–599 seek function (Perl), 654–655 SAX (Simple API for XML), 494–497 seekdir function (Perl), 418, 655 scalar function (Perl), 654 select function (Perl), 655 scalars select() method context, 302 of FileUpload object (JavaScript), 550 in Perl, 237–238 of form elements, 146 testing in Perl, 301–302 in IO::Seekable module (Perl), 747 variables in regular expressions, 361 of Text object (JavaScript), 616 scheme, 12 of Textarea object (JavaScript), 616 screen object (JavaScript), 104, 599–600 select object (JavaScript), 600–602 screen property, of window object of form object, 143, 144 (JavaScript), 627 properties, 145 screenX property, of event object (JavaScript), 547 select option object, 104 screenY property, of event object SELECT statement (SQL), 454, 458, 462 (JavaScript), 547 selected property, of Option object script alias, 280 (JavaScript), 585 SCRIPT object (JavaScript), 600 selectedIndex property