Learning Perl on Win32 Systems by Randal L. Scwartz, Erik Olson, and Tom Christiansen Here are the changes that were made for the 8/98 reprint: {29} footnote 3, code line 2: changed "/\.sec/," to "/\.sec$/," {32} code line 6: changed "($name = ) {" to "($name = )) {" (added right parenthesis) {32} code lines 11-18: replaced these lines } } else { # rename the file so it gets noticed rename ($filename, ""$filename.old"); } close (WORDSLIST) || die "couldn't close $filename: $!"; } } with these lines } close (WORDSLIST) || die "can't close $filename: $!"; } else { # must close file before renaming it close (WORDSLIST) || die "can't close $filename.old: $!" rename ($filename,"$filename.old") || die "can't rename $filename: $!"; } } } {36} code lines 3-10: same fix as page 32 {46} Table 2-3: above row 4, "Nonassociative | Named unary ...", added 1 row: Left << >> (shift operators) ("<< >>" is in constant-width font) under row 4, "Nonassociative | Named unary ...", added 2 rows: Nonassociative < > <= >= lt gt le ge (relational operators) Nonassociative == != <=> eq ne cmp (equality operators) ("< > <= >= lt gt le ge" and "== != <=> eq ne cmp" are in constant-width font) {75} code sample 4, lines 1 and 4: changed "%somearray" to "%somehash" (still in constant-width italics) and line 2: changed "hash" to "array" {77} code sample 6: changed "%score)" to "%score}" {98} code sample 5: changed $result = (join "+", "", @fields;) to $result = join("+", "", @fields); {98} code sample 6: changed $output = join ("\n", @data, "";) to $output = join ("\n", @data, ""); (transposed the right parenthesis and the semi-colon) {147} code sample 1, line 3: removed the backslash (\) (147) para. 3, line 3: changed "GetFileAttributes" to "GetAttributes" and "SetFileAttributes" to "SetAttributes" {196} para. 2, line 3: changed "['," to "['mint'," (still in constant-width font) (196) code sample 2 now reads: print p("What flavor: ", popup_menu("flavor", ['mint','cherry','mocha'])) {205} code 1, lines 3 and 4: changed "$CHATFILE" to "$CHATNAME" (228) 2a. end of last para. added this sentence: "For more information on using the && operator as a control structure, please refer to the section, "&&, ||, and ?: as Control Structures," in Chater 9." ("&&" is in constant-width font.) {269} above index entry "-= operator", added index entry "=> operator, 197-198" {270} removed these index entries and their subentries: "associative array keys", "associative array operators", and "associative arrays" {271} replaced this entry chop( ) operator defined, 50, 62 examples of, 25, 35, 52, 120, 221 introduced, 13 with these entries chomp( ) operator defined, 62 examples of, 25, 35, 52, 120, 221 introduced, 13 chop( ) operator, defined, 50 {272} index entry "double-quoted strings, and associative array elements": changed "associative array" to "hash" and index entry "empty list, and clearing out an associative array": changed "an associative array" to "a hash" {274} added these index entries: hash keys, 16 hash operators, 75 hashes creating new elements of, 74 defined, 73 example of assignment to, 17 introduced, 16 literal representation of, 74 order in, 73 removing elements from with delete, 76 sorting (sort-of), 163 stepping through with each( ), 76 variables, 73 {275} index entry "keys, of associative arrays" changed to "keys, of hashes" removed index entry "lpr command, example of, 153" {277} added index entry: "qw( ), 15, 190" (280) added index entry: "use statement, 190"