Perl Pocket Reference, 4th Edition by Johan Vromans The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated Sept. 8, 2006. UNCONFIRMED errors and comments from readers: {4} Command-Line Options; The command-line options for the perl command are given, but the perldoc command-line options are not. At a minimum, these options should be listed: perldoc PageName|ModuleName|ProgramName... perldoc -f BuiltinFunction perldoc -q FAQRegex perldoc -h prints more help perldoc perl displays the perldoc table of contents and overview [i] perldoc (13) Operators and Precedence table, ! and ~ operators; I think the line: "! ~ Unary negation, bitwise complement" would be better written as: "! ~ Logical NOT, bitwise NOT" to be more consistent with the other entries "Bitwise AND," "Bitwise OR," "Logical AND," and "Logical OR." (13) Operators and Pecedence section; The line "| ^ Logical OR, exclusive OR" should be "| ^ Logical OR, logical XOR" to be more consistent with other table entries, specifically the last two lines of the table on page 14. {25} Arithmetic Function not; According to the table of operators on page 15, "not" is a low precedence operator. But including "not" in the Arithmetic Functions section implies that it's a function, and thus is higher in precedence, and is arithmetic. I don't think "not" belongs in this section! (30) explanation for 'exists'; Paragraph states "lku must be an array a hash lookup". The word 'or' appears to be missing, and it should state "lku must be an array OR a hash lookup" (32) Regular Expressions; It would help greatly to have a precedence chart for regular expression operators (e.g. parentheses, repetition, sequence, alternation). (38) tr/// description; The description for tr/// doesn't mention that character ranges are supported, as in tr/a-z/A-Z/ {48} Formatted Printing %b format string; "%b An unsigned number (binary)" should be "%b An unsigned integer (binary)" (similar to %x and %u). (48) Last line of Standard I/O Layers section; "PerlIO" should be "perlio". {49} .number printf flag; The .number flag not only specifies the minimum width for an integer, but also causes the integer to be right-aligned with zeroes instead of spaces. (49) 4th line; "%o An unsigned integer, in octal." should be "%o An unsigned integer (octal)." to be consistent with %u and %x. {53,55} die and warn command descriptions; The die and warn commands also list the current line of the program and the current line of input read. This information is suppressed if the last character of the last element of "list" is a newline. [72] Section "Compiler Backends"; The "perlcc" environment still remains very experimental. It would be better to explicitly mention the "PAR" module with its commands at this place which appears to be quite stable and does a reasonable good job. AUTHOR'S COMMENTS: Many things have changed since the 4rd edition was published in 2002, and nowadays PAR seems to be a very good candidate to take the place of the still experimental compiler backends. For the last several years, the Pocket Guide has tracked the major perl releases (2000 3rd ed -> 5.6, 2002 4rd ed -> 5.8) and it would be logical to assume a 5th edition for 5.10. However, 5.10 is still not definite yet. On the other hand, it has been four years now since the previous edition and if the stock is getting low and budget planning permits, I could do a 5th, revised, edition for 5.8. Major changes would be to shift focus from 5.8 things 'we found not to be optimal' to 5.10 and perl6 things 'we know better now'. (73) Perl Debugger command M; The debugger command "M" is in the wrong font. It should be in the monospaced font because it is literal text. (79) File::stat description; The text "by name interface" should be "by-name interface". {88} between blib and bytes (index); The term "block" is missing. (90) Index entries for "our"; There are two entries for "our" in different fonts in the index. However, they should clearly be combined into one entry, because there is only one thing being indexed -- the "our" statement. There are other similar double entries in the index.