Это слегка переформатированный текст страницы «Errata for Programming Perl» сайта издательства O’Reilly с перечнем найденных и подтверждённых опечаток в книге «Programming Perl», 4th Edition.
Во врезках, таких, как эта, добавлены опечатки, найденные в русском издании «Программирование на Perl», которые «перекочевали» из оригинала (22 из 111).
The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled “Date Corrected”.
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date Submitted | Date Corrected | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Page xxix 1st paragraph |
“the perlthrtut manpage, which would have been approximately the same thing our “Threads” chapter would have been.” This should read: “the perlthrtut manpage, which is approximately the same thing our “Threads” chapter would have been.” Note from the Author or Editor: Change to read: “which is approximately the same thing as our.” |
Anonymous | Apr 03, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 28 Last paragraph |
The first sentence in the last paragraph references the wrong line number from the example program on page 19. It references line 15 when it should reference line 19. Note from the Author or Editor: Change as noted |
ryanoz | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 39 Second indented code example |
Incorrect check for blank lines found: next LINE if $line =~ "\n"; # skip blank lines # This will obviously skip EVERY blank and non-blank line! # First edition text was more correct (assuming no extra whitespace \n): next LINE if $line eq "\n"; # skip blank lines # or this even more correct: next LINE if $line =~ "^\n$"; # skip blank lines # or better yet (if 5.10 or later) this best solution: next LINE if $line =~ "^\R$"; # skip blank lines
Note from the Author or Editor: Change to next LINE if $line eq "\n"; # skip blank lines Русское издание: с. 67, пример внизу страницы. Строка кода должна быть: next LINE if $line eq "\n"; # пропустить пустые строки |
Anonymous | Aug 10, 2012 | ||||||||||||||||||||||||
Printed | Page 45 3rd paragraph |
End of Paragraph #3 So now you can probably figure out that when we said: next LINE if $line =~ /^#/;
we meant “Go to the next iteration of
Discussion The above paragraph text refers to an outdated code example (from the 3rd edition of this book). The text should be updated to reflect the latest code example on page 39. Note from the Author or Editor: Change the text to read: So now you can probably figure out that when we said: last LINE if $line =~ /^>/;
we meant “Go to the last iteration of the |
aphilipp | Mar 21, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 88 2nd paragraph |
The backtick example snippet at the top of the page says “
Note from the Author or Editor: Change as noted. Should read:
“The
Русское издание:
с. 112, 2-й абзац. Предложение «Переменная
«Переменная |
Anonymous | Feb 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 89 4th paragraph |
there is the words:
Unless declared with There must be “OUTSIDE that loop” Note from the Author or Editor: Change as noted
Русское издание:
с. 113, 3-й абзац. Предложение «... переменная
«... переменная |
Dmitriy Koroliov | Jul 14, 2012 | ||||||||||||||||||||||||
Printed | Page 104 3rd paragraph |
“If should be
“If
Discussion
A multiple of a negative value will always result in a larger negative value.
Because of this, if
Note from the Author or Editor: The suggested fix is necessary but insufficient.
Replace both sentences at the end of the large paragraph (“If
Unlike a mathematical remainder function, Perl’s “
|
aphilipp | Mar 31, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 110 last paragraph |
“File ages for should be
“File ages for
Note from the Author or Editor: Change “File ages for |
aphilipp | Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 113 5th paragraph |
“The “Matches” column is not always an exact rendition.” should be “The “Like” column is not always an exact rendition.” Note from the Author or Editor: Change as noted. [status=fixed in the source] |
aphilipp | Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 117 4th paragraph |
“For simple strings or numbers, in becomes equivalent to this:” should be “For simple strings or numbers, it becomes equivalent to this:” Note from the Author or Editor: Change as noted. [status=fixed in the source] |
aphilipp | Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 119 Table 3-8 |
“True is exactly one of should be
“True if exactly one of Note from the Author or Editor: Change as noted. |
aphilipp | Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 123 1st paragraph |
“it can be safely embedded within other expressions and functions calls” should be “it can be safely embedded within other expressions and function calls” Note from the Author or Editor: Change as noted. |
aphilipp | Apr 09, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 133–134 3 code examples |
The code examples each read a line from standard input. Because there is
a trailing newline at the end of the input string, the output of the
Note from the Author or Editor: On page 134, above both lines
that begin with “
|
aphilipp | Apr 10, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 136 1st paragraph |
“ should be
“ Note from the Author or Editor: Change as noted. |
Anonymous | Apr 06, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 138 3nd paragraph |
The sentence reads, “But if Note from the Author or Editor: Change as noted. Note that this sentence is in the 2nd paragraph, not the 3rd per the submitted location. |
Anonymous | Feb 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 141 1st code block |
Some
page 141: Note from the Author or Editor: Change all those to have a space right before the less-than symbol. |
jlaire | Apr 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 152 last code example |
sub unimplemented { ... } eval { unimplemented() }; if ($@ eq "Unimplemented") { say "Caught an Unimplemented exception!"; } should be sub unimplemented { ... } eval { unimplemented() }; if ($@ =~ /\AUnimplemented/) { say "Caught an Unimplemented exception!"; }
This change is required since the
Note from the Author or Editor: Change
to
|
aphilipp | Apr 14, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 180 3rd paragraph |
“because 255 might not be should be
“because 255 might not be Note from the Author or Editor: Change as noted. |
aphilipp | Apr 25, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 182 first paragraph |
The sentence containing “the six translation escapes” should instead read “the seven translation escapes”. |
Tom Christiansen![]() |
Jun 23, 2012 | Dec 13, 2013 | ||||||||||||||||||||||
Page 193 2nd paragraph |
“Table 5-3” should be “Table 5-9” in the following sentence? An alphabetical list of these metasymbols can be found below in Table 5-3. Note from the Author or Editor: Change as noted |
Anonymous | Feb 27, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 196 Table 5-9. Alphanumeric regex metasymbols |
Unintended space following “
and following “
Note from the Author or Editor: Changed as noted. |
Anonymous | Feb 27, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 197 Table 5-9 |
“
Note from the Author or Editor: Change as noted. |
jlaire | Apr 07, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 200 3rd paragraph |
There’s whitespace between “(” and “ Note from the Author or Editor: Change as noted. |
jlaire | Apr 07, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 200 last paragraph |
“You can’t use the dot [in a bracketed character class] because it would match (nearly) any character in existence” The dot can be used there and it matches a literal dot. Note from the Author or Editor: A clearer wording would be: “None of these may be used in their metacharacter sense in a bracketed character class.” Русское издание: с. 217, третий снизу абзац. Предложение «Ни один из них нельзя использовать в символьных классах.». Точнее будет так: «Ни один из них не может быть использован в символьном классе в квадратных скобках в качестве метазнака.» |
jlaire | Apr 07, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 201 last paragraph |
The simplified regex give for |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 201 last paragraph |
The regexp at the bottom of the page that reads “ Русское издание: с. 218, второй пример должен выглядеть так: (?> \R | \p{Grapheme_Base} \p{Grapheme_Extend}* | \p{Grapheme_Extend}+ | . ) |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 204 2nd paragraph |
The phrase at the start of the second line of the second paragraph that reads “Unicode names sequence” should instead read “Unicode named sequence”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 206 6th paragraph |
“That means a codepoint like should be
“That means a codepoint like Note from the Author or Editor: Change as noted. |
aphilipp | May 03, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 207 first line of code paragraph |
The regex “ |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 208 last line on page |
“Joining punctuation an like underscore” should read “Joining punctuation like an underscore” |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 210 end of second paragraph |
The sentence that ends with “section in 15.” should read “section on page 309 in Chapter 6.” |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 210-211 Table 5-14 |
The entries under the last column, labelled Name, should be set in small capitals. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 210 1st code example |
chr(0x110000) =~ \p{ahex=true} # false chr(0x110000) =~ \p{ahex=false} # false! chr(0x110000) =~ \P{ahex=true} # true chr(0x110000) =~ \P{ahex=false} # true! should be chr(0x110000) =~ /\p{ahex=true}/ # false chr(0x110000) =~ /\p{ahex=false}/ # false! chr(0x110000) =~ /\P{ahex=true}/ # true chr(0x110000) =~ /\P{ahex=false}/ # true! Note from the Author or Editor: Change as noted. |
aphilipp | May 08, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 211 2nd paragraph |
“The second column in Table 5-15 shows the POSIX classes available as of v5.14.”
Note from the Author or Editor: Change as noted. |
jlaire | Apr 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 212 1st paragraph, 1st column |
The phrase in the table reading “occurring continuous ranges” should read “occurring in continuous ranges”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 213 Table 5-15. POSIX character classes (last entry) |
The term “
Note from the Author or Editor: ✓ The column width on
this table’s first column needs to be widened to make sure that
“ |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 213 Table 5-16 |
[^:digit:] [^:space:] [^:word:] should be [:^digit:] [:^space:] [:^word:] Note from the Author or Editor: Change as noted. |
aphilipp | May 09, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 224 1st paragraph |
“the
Note from the Author or Editor: Change as noted. |
jlaire | Apr 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 224 1st code snippet |
Many code snippets that used “
I haven’t read the whole book, but I searched the PDF for “ I’ve previously submitted an errata for the one on page 253.
Note from the Author or Editor: On page 224, just below the
On page 251, just below the
On page 253, just below the
On page 259, just below the
On both pages 745 and 746, just below the
Also, change the “
On page 909, right after the
|
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 225 last code example |
The outer set of noncapturing parentheses in the following line of code seems to serve no purpose:
Wouldn't it be better written as follows?
Note from the Author or Editor: Change as noted. |
aphilipp | May 13, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 227, 228 2nd paragraph, 4th paragraph |
The following lines of text are at issue:
“If you happen to have more than one group by the same
“Which makes
My finding is that
Note from the Author or Editor: Change “then
Change “Which makes |
aphilipp | May 14, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 228 5th paragraph |
“the standard
The first colon looks lonely. Note from the Author or Editor: Change as noted. |
jlaire | Apr 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 228 code section at bottom |
The CPAN documentation for the “When the all parameter is omitted or false, then the tied hash elements will be the contents of the leftmost defined buffer with the name of the associated hash key.”
Therefore, the “
Note from the Author or Editor: Change all three instances of
“ |
aphilipp | May 15, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 228 6th paragraph |
“Now access your named captures through those variables, just as you did with
should be
“Now access your named captures through those variables, just as you did
with Note from the Author or Editor: Change as noted. |
aphilipp | May 15, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 228 1st paragraph |
Since the
“When you have the same named group loaded more than once,
the previous contents in the Note from the Author or Editor: Change this sentence:
When you have the same named group loaded more than once,
the previous contents in the to read:
When you
have the same named group loaded more than once, the previous
contents in the |
aphilipp | Jun 04, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 230 7th paragraph |
Delete the two words “other modifiers”, because “modifiers” occurs after the list. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 236 3rd paragraph, 2nd line |
Change “six translation escapes” to “seven translation escapes”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 236 3rd paragraph, 6th line |
Change “Table 5-3” to “Table 5-9”. Note from the Author or Editor: Change as noted. |
aphilipp | May 22, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 237 last paragraph |
“patterns that were more than 10k longer”
Note from the Author or Editor: Change “more than 10k longer” to “over 10k in length”. |
jlaire | Apr 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 245 4th bullet in 4th (?) paragraph |
I think the following refers to Table 5-9 instead of 5-3: A backslashed letter matches an abstract sequence, typically either a particular character or one of a set of characters, as listed in Table 5-3. Note from the Author or Editor: Change as noted |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 248 2nd regex example on the page |
The regex example:
should be:
Note from the Author or Editor: Change as noted. |
Anonymous | Feb 26, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 248 last paragraph |
“When the Engine encounters
Superfluous space before Same thing on page 249, 4th paragraph:
“When the Engine encounters Note from the Author or Editor: Change as noted.
Русское издание:
с. 262, второй абзац. Лишний знак « |
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 248 line that reads "0123456789" =~ /(?:(\d{3}))/g; |
The line that reads
Should have an equal sign, not a colon after the question mark, as follows:
Note from the Author or Editor: Change as noted |
Leonard Cuff | Dec 31, 2012 | |||||||||||||||||||||||
Printed | Page 249 3rd paragraph, 3rd line |
Change “for left to right” to “from left to right”. Note from the Author or Editor: Change as noted. |
aphilipp | May 27, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 250 4th paragraph |
“Although
Superfluous space before
(I searched for ' Note from the Author or Editor: Change as noted. |
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 252 6th paragraph |
Here’s a list of straight quotes that should be curly quotes. I don’t feel like flooding the errata list with separate submissions.
Note from the Author or Editor: Change all the non-literals as noted. |
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 253 4th paragraph (the code listing) |
The ' say "REGEX is $re\n"; # debugging output
is not aligned with the others, and the
(Compared to the 3rd edition, “
Note from the Author or Editor: Change the |
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 254 1st code section |
Assuming Perl v5.14, change “ Note from the Author or Editor: Change as noted. |
aphilipp | May 27, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 258 2nd code example |
The output of the following line of code is different than what is described in the text:
The text states that this prints the following: Matched so far: abcdef Matched so far: abcde Matched so far: abcd Matched so far: abc Matched so far: ab Matched so far: a But I am finding that only the last line gets printed: Matched so far: a Since this example was taken from the 3rd edition of this book, I suspect that it was not updated to reflect new optimizations to the regex engine. One solution to get the output that the text describes is to slightly modify the code example to the following: "abcdef" =~ / .+ (?{say "Matched so far: $&"}) .cdef $/x; Note from the Author or Editor: Change as noted. That is, change the line reading:
to reading
by switching the second “ |
aphilipp | May 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 259 1st code example |
The following code example gives the error “
This is because the backslash disappears when the
Note from the Author or Editor: Change as noted. |
aphilipp | Jun 01, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 265 last code snippet (and the following pages) |
I’m not familiar with the details of pod, but there are at least two obvious bugs. The code doesn’t parse all the “hairy examples” on page 265, but with these bugs fixed it does.
1) The group named “mirrored” contains This bug appears at the end of page 265 and also in the complete code listing on page 266.
2) The program on page 266 has a broken implementation of “balanced”.
It doesn’t parse “
The
The code also allows nesting “mirrored” inside “balanced”, but I don’t know if that’s intentional. This is a nice example of regexes and grammars, but it would be cool if the input was more clearly defined in the text and the code actually worked on the pod examples given. Note from the Author or Editor: On page 266 replace the second plus with a space, changing (?<unangle> [^<>]++ ) to (?<unangle> [^<>]+ )
Also on page 266, delete both instances of On page 268, remove the second plus, changing <token: unangle> [^<>]++ to just <token: unangle> [^<>]+ On page 269, this unified diff should be applied: --- /tmp/t0 2012-06-12 11:40:36.000000000 -0600 +++ /tmp/t1 2012-06-12 11:40:53.000000000 -0600 @@ -28,15 +28,26 @@ }, } { - "" => "N<inside>", + "" => "I<< N<inside>un>tag >>", "podtag" => { - "" => "N<inside>", - "capital" => "N", + "" => "I<< N<inside>un>tag >>", + "capital" => "I", "either" => { - "" => "<inside>", - "balanced" => { - "" => "<inside>", - "contents" => { "" => "inside", "unangle" => ["inside"] }, + "" => "<< N<inside>un>tag >>", + "mirrored" => { + "" => "<< N<inside>un>tag >>", + "open" => "<<", + "podtag" => { + "" => "N<inside>", + "capital" => "N", + "either" => { + "" => "<inside>", + "balanced" => { + "" => "<inside>", + "contents" => { "" => "inside", "unangle" => ["inside"] }, + }, + }, + }, }, }, }, At which point the entire output should look like this: { "" => "C<B<nested>>", "podtag" => { "" => "C<B<nested>>", "capital" => "C", "either" => { "" => "<B<nested>>", "balanced" => { "" => "<B<nested>>", "contents" => { "" => "B<nested>", "podtag" => [ { "" => "B<nested>", "capital" => "B", "either" => { "" => "<nested>", "balanced" => { "" => "<nested>", "contents" => { "" => "nested", "unangle" => ["nested"] }, }, }, }, ], }, }, }, }, } { "" => "I<< N<inside>un>tag >>", "podtag" => { "" => "I<< N<inside>un>tag >>", "capital" => "I", "either" => { "" => "<< N<inside>un>tag >>", "mirrored" => { "" => "<< N<inside>un>tag >>", "open" => "<<", "podtag" => { "" => "N<inside>", "capital" => "N", "either" => { "" => "<inside>", "balanced" => { "" => "<inside>", "contents" => { "" => "inside", "unangle" => ["inside"] }, }, }, }, }, }, }, } { "" => "X<indexed>", "podtag" => { "" => "X<indexed>", "capital" => "X", "either" => { "" => "<indexed>", "balanced" => { "" => "<indexed>", "contents" => { "" => "indexed", "unangle" => ["indexed"] }, }, }, }, }
Русское издание:
с. 278, пример кода. Оба « |
jlaire | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 267 2nd paragraph |
The phrase “pieces you that you’ve” looks incorrect in the following sentence (remove “you”?): So while you can use this technique to validate input, it has its points of frustration when it comes to pulling out the pieces you that you’ve just worked so hard to parse. Note from the Author or Editor: “pieces you that you’ve” should have the first “you” removed. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 271 sentence just above the “Alternate Engines” header |
This sentence probably intends to refer to chapter 7:
Now if you’re still wondering what those Note from the Author or Editor: Change as noted |
Anonymous | Feb 26, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 272 2nd paragraph |
The phrase “maintains a high level Perl compatibility” is missing the word “of” and so should read “maintains a high level of Perl compatibility”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 273 RE2 code examples |
The three RE2 examples are each have a “
Note from the Author or Editor: The “ |
Anonymous | Feb 26, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 280 second to last code |
The string literal assigned to
Note from the Author or Editor: Easier, and perhaps better, to take the spaces
out of the |
jlaire | Apr 11, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 282 5th paragraph |
The following sentence:
On input, the
appears to be saying the opposite of what
Layer is performing Win32-like “ -- http://perldoc.perl.org/perliol.html Note from the Author or Editor: Exchange the words “input” and “output” in the referenced sentence. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 282 first code example |
binmode STDOUT, ":encoding(UTF–8)" || die "can't binmode to UTF–8: $!";
Needs parens or ‘ Note from the Author or Editor: Change as noted. |
jlaire | Apr 11, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 283 end of 4th paragraph |
Change “See 19.” to “See Chapter 17.” |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 285 3rd paragraph |
In the following sentence, I think “seen” should be “see”: Alas, you’ll even seen “text” files where some lines have one encoding but other lines have different encodings. Note from the Author or Editor: “you’ll even seen” should read “you’ll even see”. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 286 2nd paragraph |
I think The reciprocal action to retrieve a Unicode value, therefore, requires first encoding the key before you use it, then decoding the value returned after you fetch it: use DB_File; use Encode qw(encode decode); tie %dbhash, "DB_File", "pathname"; # $uni_key holds a normal Perl string (abstract Unicode) $enc_key = encode("UTF–8", $uni_key); $enc_value = $dbhash{$enc_key}; $uni_value = decode("UTF–8", $enc_key); Note from the Author or Editor: Change as noted. |
Anonymous | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 287 1st code example |
I cannot find a method by the name of “
should be
Note from the Author or Editor: Change as noted
Русское издание:
с. 296, второй пример кода. Вместо «
|
aphilipp | Jul 22, 2012 | ||||||||||||||||||||||||
Page 288 3rd paragraph, 3rd line |
Change “two string” to “two strings”. Note from the Author or Editor: Change as noted |
aphilipp | Nov 27, 2012 | ||||||||||||||||||||||||
Page 290 1st paragraph |
“That is, a single user-visible character (a grapheme) can require more than a single codepoint to represent.” should be “That is, a single user-visible character (a grapheme) can require more than a single codepoint to represent it.” Note from the Author or Editor: Change as noted |
aphilipp | Jul 25, 2012 | ||||||||||||||||||||||||
Page 290 4th paragraph, 6th line |
Change “ Note from the Author or Editor: Change as noted
Русское издание:
с. 299, предпоследний абзац. Вместо «
|
aphilipp | Jul 25, 2012 | ||||||||||||||||||||||||
Page 291 5th paragraph |
In the following sentence, I think it should read, “This may be what you want ...”: This may be want you want in searching and related applications, but canonical decomposition normally works better than compatibility decomposition for most applications. Note from the Author or Editor: “This may be want you want” should read “This may be what you want”. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 291 1st paragraph, 1st line |
Change “ Note from the Author or Editor: Change as noted
Русское издание:
с. 300, второй абзац. Вместо «
|
aphilipp | Jul 25, 2012 | ||||||||||||||||||||||||
Page 291 1st paragraph, 3rd line |
Change “ Note from the Author or Editor: Change as noted
Русское издание:
с. 300, второй абзац, третья строка.
Вместо «
|
aphilipp | Jul 25, 2012 | ||||||||||||||||||||||||
Printed | Page 293 Paragraph –3 (meaning three from the end) |
There should be a comma between “combining characters” and “variation selectors”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 293 last paragraph |
“to know about more” should read “to know more about”. |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 294 6th (?) paragraph (wild guess) |
I believe the second comment below was intended to be "crème fraîche": And change the last bit this way: substr($cb, –6) = "fraîche"; # "crème brfraîche" or "crème fraîche" $cb =~ s/\X{6}$/fraîche/; # "crème brûlée"
Note from the Author or Editor: The comment |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 294 2nd and 3rd bulleted list items |
This escape sequence used in two regexes:
should be changed from
Note from the Author or Editor: Change as noted. |
Nick Patch | Apr 10, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 294 code example between 1st and 2nd paragraph |
Change “ Note from the Author or Editor: Change as noted
Русское издание:
с. 303, пример кода между первым и вторым абзацем.
Вместо «
|
aphilipp | Jul 27, 2012 | ||||||||||||||||||||||||
Page 294 2nd paragraph, 1st line |
Change “strings comparisons” to “string comparisons”. Note from the Author or Editor: Change as noted |
aphilipp | Jul 27, 2012 | ||||||||||||||||||||||||
Page 296 1st code section |
should be
Note from the Author or Editor: Change as noted. Русское издание: с. 304, первая строка в последнем примере my $gs = Unicode::GCString("crème brûlée"); должна быть my $gs = Unicode::GCString->new("crème brûlée"); |
aphilipp | Jul 28, 2012 | ||||||||||||||||||||||||
Page 296 6th paragraph, 5th line |
Change “ Note from the Author or Editor: Change per description.
Русское издание:
с. 305, 4-й абзац, предпоследняя строка. Вместо «
|
aphilipp | Jul 28, 2012 | ||||||||||||||||||||||||
Page 297 2nd paragraph, 4th line |
Change “UAX#14” to “UAX #14”. Note from the Author or Editor: Change as noted Русское издание: с. 305, последний абзац. Нужно добавить пробел между «UAX» и «#14». |
aphilipp | Jul 28, 2012 | ||||||||||||||||||||||||
Page 298 6th paragraph |
“ should be
“ Note from the Author or Editor: Change as noted |
aphilipp | Jul 30, 2012 | ||||||||||||||||||||||||
Printed | Page 299 code section at bottom of page |
The word “ |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 299 3rd code block |
The second regex:
requires the /x and /e modifiers:
Note from the Author or Editor: Change as noted. |
Nick Patch | Apr 10, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 299 3rd code block |
The --upper_before_lower => 1, --preprocess => {
shouldn't be prefixed with “ upper_before_lower => 1, preprocess => sub {
This is the only instance of Note from the Author or Editor: Change as noted. |
Nick Patch | Apr 10, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 299 code section at bottom of page |
The penultimate line shouldn’t have a semicolon. Note from the Author or Editor: Change the penultiumate semicolon to a comma. It should actually read: my $collator = Unicode::Collate->new( upper_before_lower => 1, preprocess => sub { local $_ = shift; s/^ (?: The | An? ) \h+ //x; # strip articles s/ ( \d+ ) / sprintf "%020d", $1 /gex; return $_; }, ); |
jlaire | Apr 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 301 3rd paragraph |
Change “differ” to “are the same” in the phrase “Only when primary strengths differ does it fall through to compare secondary strengths...”. Note from the Author or Editor: Change as noted. |
Nick Patch | Apr 10, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 303 4th paragraph, 7th line |
Change “forwards compatibility” to “forward compatibility”. Note from the Author or Editor: Change as noted |
aphilipp | Jul 30, 2012 | ||||||||||||||||||||||||
Page 306 4th (?) paragraph |
The following refers to Table 5-6, and I think it might be Table 5-12 instead (not sure):
One thing to always be aware of is that, by default, the Perl shortcuts like Note from the Author or Editor: It should refer to table 5-11, not to 5-6. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 307 The string in the code insert that gets assigned to $mystery . |
The string that’s assigned to |
Tom Christiansen![]() |
Mar 30, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 307 2nd code block |
print " BC=", $$ci{bidi}; print " mirrored=", $$ci{bidi};
The second “
Also, the outputs on the following page should have newlines before each “ Note from the Author or Editor: Change as noted. |
jlaire | Apr 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 307 2nd code section |
The code has a newline and tab immediately after ‘
Note from the Author or Editor: Break the lines on 308 before U+096D \N{DEVANAGARI DIGIT SEVEN} gc=Nd script=Devanagari BC=L mirrored=L ccc=0 nv=7 |
aphilipp | Aug 11, 2012 | ||||||||||||||||||||||||
Page 311 1st paragraph |
Page 311 has the following sentence: It’s important to remember not to use “&” for the first set; that would be intersecting with nothing, resulting in an empty set. The preceding page (310) has this sentence:
Intersection, specified with the “
The ‘“&”’ on page 311 looks different
from the ‘“
Note from the Author or Editor: The ampersand should be a literal
in “to remember not to use “ |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 327 Table 7-1. Prototypes to emulate built-ins |
In the following table entries “
Note from the Author or Editor: Both instances
of “ |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 346 last paragraph |
In the following sentence, I think it meant to say, “an indirect filehandle”: Anytime you have a variable that contains a filehandle instead of a bareword handle, you have an indirect filehandles. Note from the Author or Editor: Change as noted. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 346 3rd paragraph |
“Although you can usually use typeglob and references to typeglobs interchangeably, there are a few places where you can’t.” The first “typeglob” should be in plural, too. Note from the Author or Editor: Change as noted. |
jlaire | Apr 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 356 3rd paragraph |
The text reading:
only applies to should read
only applies to |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 357 last code block |
Note from the Author or Editor: Change as noted. |
jlaire | Apr 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 358 1st paragraph example |
In the following example, there is a semicolon ( @colors = qw(red blue green yellow orange purple violet); for my $name (@colors) { no strict "refs"; # Allow symbolic references *$name = *{uc $name} = sub { "<FONT COLOR='$name'>;@_</FONT>" }; } Note from the Author or Editor: Change as noted. |
Anonymous | Feb 28, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 368 –2nd paragraph |
“inside the
It’s “ Note from the Author or Editor: Change as noted. |
jlaire | Apr 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 396 2nd paragraph |
The text reading:
Any variable not associated with should instead read
Any variable not associated with
Русское издание:
с. 393, четвёртый абзац. После «... с ключевым словом |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 403 2nd paragraph |
“Some modules offer additional functionality in its import list.” That should end with “in their import lists”. Note from the Author or Editor: Change as noted. |
jlaire | Apr 14, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 404 penultimate line of code at bottom of page |
The line that reads:
has a spurious open brace, and should instead read
|
Tom Christiansen![]() |
Apr 03, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 405 5th (?) paragraph |
The following sentence appears to be missing something (perhaps a word like “building” or “creating” or “defining” or ...?): Earlier, we said that there are two ways for a module: traditional or object-oriented. Note from the Author or Editor: Change “ways for a module” to “flavors of modules”. |
Anonymous | Feb 29, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 410 footnote |
“ Note from the Author or Editor: Change as noted. |
jlaire | Apr 14, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 421 2nd paragraph |
I think you meant, “Notice the lack of a comma ...”: Notice the lack of a semicolon after the class name or instance: Note from the Author or Editor: Change as noted. Русское издание: с. 414, четвёртый абзац. Вместо «отсутствие точки» нужно читать «отсутствие запятой». |
Anonymous | Feb 29, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 429 3rd code block |
package Horse; use base qw(Critter). The dot at the end of the second line should be a semicolon. Note from the Author or Editor: Change as noted. |
jlaire | Apr 15, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 432 1st and 2nd paragraph |
I think you meant perl traverses Note from the Author or Editor: Change as noted
Русское издание:
с. 424, третий абзац, с. 425, второй абзац.
Вместо |
Anonymous | Oct 31, 2012 | ||||||||||||||||||||||||
Printed | Page 435 1st paragraph |
The text “has a similar problems” should read “has a similar problem” |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 445 1st (?) paragraph |
In this sub AUTOLOAD { my $self = shift; # only handle instance methods, not class methods croak "$self not an object" unless ref($invocant); my $name = our $AUTOLOAD; return if $name =~ /::DESTROY$/; unless (exists $self–>{$name}) { croak "Can't access '$name' field in $self"; } if (@_) { return $self–>{$name} = shift } else { return $self–>{$name} } }
Note from the Author or Editor: Change |
Anonymous | Mar 01, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 447 last paragraph |
The spurious “ |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 467 2nd/3rd-to-last paragraph |
There is a spurious paragraph break after “the result with make”. |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 483 2nd paragraph |
(Sorry for the formatting loss.) As shown, that example would instead print: 101 Red 102 Green 103 Blue
Here’s a simple tie my $counter, "Tie::Counter", 100; @array = qw /Red Green Blue/; for my $color (@array) { # Prints: print " $counter $color\n"; # 100 Red } # 101 Green # 102 Blue The constructor takes as an optional extra argument the first value of the counter, which defaults to 0. Assigning to the counter will set a new value. Here’s the class: package Tie::Counter; sub FETCH { ++ ${ $_[0] } } sub STORE { ${ $_[0] } = $_[1] } sub TIESCALAR { my ($class, $value) = @_; $value = 0 unless defined $value; bless \$value => $class; } 1; # if in module See how small that is? It doesn’t take much code to put together a class like this. Note from the Author or Editor: Change as noted. |
Anonymous | Mar 01, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 547 2nd paragraph |
I may be missing something here but did the following mean “
Note from the Author or Editor: Change as noted. |
Anonymous | Mar 05, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 550 3rd paragraph |
Not technically wrong, but
One additional consideration when writing Internet programs: many protocols
specify that the line terminator should be
Note from the Author or Editor: Change |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 581 2nd paragraph |
“Any value Should be:
“Any value Note from the Author or Editor: Change as noted |
Donald Canton | Oct 11, 2013 | |||||||||||||||||||||||
Printed | Page 589 2nd- and 3rd-to-last paragraphs |
There are two instances of curly quotes following -M that should be straight quotes. |
Tom Christiansen![]() |
Apr 02, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Page 599 section on “ :raw ” |
Instead of “Other layers that5 would affect” it should read “Other layers that would affect”. Note from the Author or Editor: Change as noted |
JHn | Dec 06, 2012 | ||||||||||||||||||||||||
Page 619 4th paragraph |
I think you meant “ If your init file contains:
then your program will run without human intervention, putting trace information
into the file db.out.
(If you interrupt it, you’d better reset Note from the Author or Editor: Change as noted.
Русское издание:
с. 592, первый пример кода и второй абзац. Вместо |
Anonymous | Mar 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 619 last paragraph |
(Not really sure if this is a mistake.) This sentence is different from the one below it from perldoc:
The
The
Note from the Author or Editor: The path should be |
Anonymous | Mar 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 622 6th (?) paragraph |
1) “
The debugger also maintains magical internal variables, such as Note from the Author or Editor: The triple colon should be a double colon. Nothing to be done about the linebreak in the middle of the literal, though. |
Anonymous | Mar 08, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 642 2nd paragraph |
I think you meant “is a sophisticated tool” or “is a sophisticated set of tools”: Dist::Zilla
Note from the Author or Editor: Change “tools” to “tool” |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 681 7th (?) paragraph |
I think you meant “assign the first line to Sometimes this doesn’t make any difference, as in:
but it makes a big difference for things like:
which will slurp up all the rest of Note from the Author or Editor: Change as noted. |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 682 3rd paragraph |
Did you mean “Encodings” because of “They”? Encoding cannot be guessed. They must be specified. Note from the Author or Editor: I’d rewrite this as “You cannot guess an encoding; you have to specify it.” |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 697 15th (?) paragraph |
I can’t seem to find
https://metacpan.org/search?q=file%3A%3Ammap
Use
Note from the Author or Editor: Change “ |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 713 footnote |
“expat” appears to be a link, but doesn’t go anywhere:
3. Actually, Note from the Author or Editor: The link should go to http://expat.sourceforge.net/ |
Anonymous | Mar 12, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 740 1st paragraph |
1) Granted that it depends on the pod translator, I still expected
“touch -t” to appear in bold in this example.
Note that pod sequences do nest. That means you can write “ Note from the Author or Editor: The “touch” and the “–t” should be rendered in bold, but are currently italic. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 740 last but four line |
The example for pod2html should make use of pod2html, not pod2man. On CPAN there is more than one pod2html, on METACPAN the best-rated one is Tom Christiansen's one: https://metacpan.org/module/pod2html. Using that pod2html the line in the book should read like this:
Note from the Author or Editor: Change as noted Русское издание: с. 702, последний пример. Вместо % pod2man File.pm | troff -man -Tps -t > tmppage.ps должно быть % pod2html --infile=File.pm --outfile=tmppage.html |
Jochen Hayek | Nov 20, 2012 | ||||||||||||||||||||||||
Page 742 footnote |
“Perl Power Tools” looks like a link, but it doesn’t go anywhere: 3. And if you don’t, get the Perl Power Tools version from CPAN. Note from the Author or Editor: The link should be to https://www.metacpan.org/release/ppt/ |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 744 last paragraph and footnote |
The footnote says, “There has to be a space between the By the way, there are no hyphens in this text. I promise not to mention it again. You could write your own version of pod2text that loads a file and invokes your subclass, but perldoc will load an alternate formatting class with the –M switch:5
5. This is not the same Note from the Author or Editor: Delete footnote 5 at the bottom of 744 altogether, as it no longer applies. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 758 6th paragraph |
This link goes to this address: Stackoverflow is a question-and-answer site for general programming. Even though it is not dedicated to Perl, there are several Perl experts who frequent the site and answer questions. Note from the Author or Editor: Change “con” to “com” in the domain name. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 766 1st paragraphish |
Missing “
Note from the Author or Editor: Change as noted. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 767 last paragraph |
I may be making a stretch, but I don’t think you meant, “each variable description in Table 25-1”, because there aren’t any variable descriptions in that table: So that we don’t have to keep repeating ourselves, each variable description in Table 25-1 starts with one or more of these annotations. Note from the Author or Editor: Delete “in Table 25.1” |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 781 2nd paragraph |
This variable description is lacking an annotation, e.g., “[DYN]”:
Note from the Author or Editor: Prefix paragraph with “[DYN, RO]”. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 782 last paragraph (and cont. on next page) |
This variable description looks odd, as though there are two different versions of the description (each beginning with an “[ALL]”):
This variable was added in v5.005.
[ALL] This hash is defined only if you’ve loaded the standard [next page]
Note from the Author or Editor: Delete the second of the two paragraphs beginning with [ALL]. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 783 2nd paragraph |
I think you meant “
Note from the Author or Editor: Change the “ |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 784 3rd-ish paragraph |
Huh? :-) $ perl –E 'say $^V 5.10.1' 1 Note from the Author or Editor: That is missing a comparator, and should be
|
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 785 4th (?) paragraph |
This variable description is lacking an annotation, e.g., “[DYN,RO]”:
This is just like Note from the Author or Editor: Change as noted. |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 796 Table 26-5 |
...
Note from the Author or Editor: Add “nonzero binary with “ |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 797 8th paragraph |
From the department of redundancy department: This also allows you to reuse arguments, too:
Note from the Author or Editor: Remove “, too” |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 807 3rd paragraph |
I can’t seem to find a verb:
The
Note from the Author or Editor: Change to “The |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 809 4th paragraph |
More additional extra redundancy:
The Note from the Author or Editor: Remove the “, too” |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 817 3rd paragraph |
Um, well, uh, those don’t even look like quotes (I didn’t mention the hyphen). :-)
Here’s another strategy: open a pipe to yourself using Note from the Author or Editor: The curly quotes should be straight quotes |
Anonymous | Mar 13, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 866 4th paragraph |
Are those last two paragraph repeats of the first two?
If you
If a forked child inherits system file descriptors like [Perl Functions in Alphabetical Order | 865] to /dev/null. That’s because even when the parent process exits, the child will live on with its copies of those filehandles. The remote server (such as, say, a CGI script or a background job launched from a remote shell) will appear to hang because it’s still waiting for all copies to be closed. Reopening the system filehandles to something else fixes this. [...]
If you
Note that if your forked child inherits system file descriptors like
Note from the Author or Editor: Delete the last two paragraphs of the |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 868 2nd paragraph |
Do I really care? No, but I thought you might — it just jumped out at me: it's ne it’s Note from the Author or Editor: There’s a non-curly quote in the first line of the second paragraph |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 871 2nd paragraph |
Did you mean “The Socket module has a ...”:
The Note from the Author or Editor: Change as noted |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 875 2nd paragraph |
Did you mean “ This function translates a protocol number to its corresponding name. The return value in list context is: # 1 2 3 ($name, $aliases, $protocol_number) = getprotobynumber(6); Note from the Author or Editor: Change as noted |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 875 4th paragraph |
Did you mean “
These functions iterate through the /etc/protocols file. In list context, the return
value from # 1 2 3 ($name, $aliases, $protocol_number) = getprotoent();
Note from the Author or Editor: It should be |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 880 6th paragraph |
Small nit: the “0” in “month 0” is different than
the one in “day
In particular, this means that
Note from the Author or Editor: The zero in “month |
Anonymous | Mar 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 889 4th paragraph |
You mention ‘
Instead, use the
Note from the Author or Editor: Change the |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 889 last paragraph |
Did you mean “L<perlfunc>”: See the perllocale, perlunicode, and LIperlfunc> manpages for the most recent results. Note from the Author or Editor: The LIperlfunc> should be perlfunc with a link to http://perldoc.perl.org/perlfunc.html |
Anonymous | Mar 20, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 891 2nd paragraph |
Need space after “This”:
Thisfunction tells the system that you’re going to be accepting
connections on this
|
Anonymous | Mar 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 893 5th paragraph |
Did you mean something like this:
Don’t get me wrong; I’m not the code police. It’s just that it’s been so long since I programmed with bare words, this looked like a syntax error:
Note from the Author or Editor: Quote each word in the list for |
Anonymous | Mar 22, 2012 | ||||||||||||||||||||||||
Page 896 4th paragraph |
The “use” in “
This function calls the System V IPC msgget(2) syscall. See msgget(2)
for details.
The function returns the message queue ID, or
Note from the Author or Editor: Set the “ |
Anonymous | Mar 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 901 3rd paragraph |
I think you mean “ $dec_perms = (stat("filename"))[2] & 07777; $oct_perm_str = sprintf "%o", $perms;
Note from the Author or Editor: Change |
Anonymous | Mar 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 908 3rd paragraph |
Replace Note from the Author or Editor: Change as noted
Русское издание:
с. 852, третий снизу абзац.
Вместо |
Anonymous | Jun 05, 2013 | |||||||||||||||||||||||
Printed | Page 911ord function paragraph |
“To find the codepoint for a character gives it name as a string,
use the should maybe be something like:
“To find the codepoint for a character that gives its name as a string,
use the Note from the Author or Editor: It should read: “given its name as a string”, and “functions” should be changed to “function”. |
aphilipp | Apr 03, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 932 ‘ say ’ function description (5th & last para body text) |
The text states that the ‘
“...is available only when the “
This is an incorrect citation; this section is not relevant to enabling
the “
The correct citation would be to the section on the Note from the Author or Editor: Change as noted
Русское издание:
с. 875, второй абзац.
Вместо «см. раздел “Термы и списочные операторы (влево)” в главе 3»
следует читать
«см. описание прагмы |
William Perlist | Jun 14, 2012 | |||||||||||||||||||||||
Page 933 3rd paragraph |
The sentence says, “
Since a
Note from the Author or Editor: Change
to “Since a |
Anonymous | Mar 22, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 937 last paragraph |
Did you mean “effects”? (Please don’t hit me.)
(A timeout of Note from the Author or Editor: Change “affects” back to “effects” per Camel3. |
Anonymous | Mar 29, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 938 6th paragraph |
One should probably not (attempt to) mix buffered I/O (like read or Note from the Author or Editor: The period at the front of the line should be its end. |
Anonymous | Mar 29, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 951 last paragraph |
The third “ split /PATTERN/, EXPR, LIMIT split /PATTERN/, EXPR split /PATTERN/ split Note from the Author or Editor: Change as noted |
Anonymous | Mar 29, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 983 1st paragraph |
Does that have one too many
Note from the Author or Editor: Delete one of the “ |
Anonymous | Apr 09, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Page 1026 section for "parent" |
In this section, “
The
The following example is equivalent to loading both parent modules and adding
them to BEGIN { require Mother; require Father; push @ISA, qw(Mother Father); }
This assumes each parent module lives in its own file. If the parent classes do not live
in separate files, perhaps because you’ve defined them in the same file or already
loaded them from a file as part of another class, you can use the use parent qw(–norequire Mother Father);
This is equivalent to adding those classes to BEGIN { push @ISA, qw(Mother Father); }
Note from the Author or Editor: That final |
Anonymous | Mar 05, 2012 | Jun 15, 2012 | |||||||||||||||||||||||
Printed | Page 1063 The gloss “lexical variable” |
Change “declared by |
Tom Christiansen![]() |
Apr 01, 2012 | Jun 15, 2012 | ||||||||||||||||||||||
Printed | Page 1099 5th line from the bottom of the first column |
The index references a unknown comparison operator: “cpm”. Should have been “cmp”. Note from the Author or Editor: Change as noted |
Jean Forget | Oct 21, 2013 | |||||||||||||||||||||||
Page 1130 entire page |
The index contains many link errors. Some examples: p. 1130, “last assingments, 83” does not link at all; p. 1130, last entry “zombie processes, 521, 1081” erroneously links to p. 197 and 218, respectively. Also, clicking just slightly to the right of “521” *also* links to 218. Clickable areas are located slightly left of where they should be. Tested with both Adobe Reader and Foxit Reader. |
Alex Kok | Jun 11, 2013 | Dec 13, 2013 | |||||||||||||||||||||||
Printed | Page 1130 First entry for letter X |
Change: cdebugger ommand to debugger command. Also, change underPrint to undefPrint Note from the Author or Editor: Change as noted |
Jean Forget | Oct 23, 2013 | |||||||||||||||||||||||
Page 1172 middle |
The page numbers for the “utf8 pragma” are not linked to the occurrences within the text. This is also true for many, many other index entries. Your Perl Cookbook ebook is much better in that respect. Note from the Author or Editor: The index needs work |
JHn | Oct 31, 2012 |