Errata

Learning Perl on Win32 Systems

Errata for Learning Perl on Win32 Systems

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 9
3rd paragraph

the link to the Perl-for-Win32 FAQ,

http://www.endcontsw.com/people/evangelo/Perl_for_Win32_FAQ.html,

is not dead; it's been taken over by a porn site.

Anonymous   
Printed Page 24
The while statement in the sample program is missing the second closing

parentheses, ")".

Anonymous   
Printed Page 39
Last paragraph

Ref: 12/98 Printing:

"... and hex numbers start with a leading 0x or 0X."

Tried two different versions of Perl and
neither allowed the upper case "0X".

Anonymous   
Printed Page 45
1st footnote

* Asssuming...

should be:

* Assuming...

Anonymous   
Printed Page 47
(under "Scalar Variables")

replace: "Scalar variable names begin with a dollar sign followed by a letter, and
then..."

with: "Scalar variable names begin with a dollar sign followed by either a letter or
an underscore, and then..."

Anonymous   
Printed Page 60
6th paragraph

The following statement is false:

"Assignment to an array element with a subscript of less than 0 is a fatal error,
because it is probably the result of Very Bad Programming Style."

I successfully ran the following script:

use strict;
my @fred = qw(apple orange pear mango);
$fred[-2]="pineapple";
print("@fred");

With the following results:

D:Win32Perl>go
apple orange pineapple mango

Anonymous   
Printed Page 73
(under "Hash Variables")

replace: "A hash variable name is a percent sign (%) followed by a letter, followed
by zero or more letters, digits, and underscores"

with: "A hash variable name is a percent sign (%) followed by either a letter or an
underscore, followed by zero or more letters, digits, and underscores"

Anonymous   
Printed Page 147
First code sample

This code will only work for me if I change the second line from

unless chmod(0666,$file) {

to

unless (chmod(0666,$file)) {

(I am executing this on a Unix server, but I don't think it would make a
difference. I am new to Perl.)

Anonymous   
Printed Page 153
first footnote

The footnote refers the reader to section 8 of the Perl FAQ "How can I capture
STDERR from an external command?"

Since the is a win32 book, it appears that the Perl FAQ that describes this
topic does not apply, as the FAQ describes the bourne shell.

Anonymous   
Printed Page 166
Exercise 1

The terms "backslash" and "slash" are used interchangeably, while these
represent distinctly different characters, "" and "/". The answer on page
236 also conflicts with the stated exercise in that the answer looks for a "/"
and not a backslash as the exercise stipulates.

Anonymous   
Printed Page 192
2nd program

<INPUT NAME="favorite" Value="mint"> should be <INPUT NAME="flavor">.

Anonymous   
Printed Page 329
the first complete programming example (answer to ch7 exercise 2c)

If I understood the exercise correctly, we were to match aeiou in order
regardless of intervening characters, except that no vowel can be preceded
by the one that comes next in the alphabet.

The solution provided:
while (<STDIN>) {
if (/[^eiou]*a[^iou]*e[^aou]*i[^aeu]*o[^aei]*u[^aeio]*$/i) {
print;
}
}

Is the first thing I tried, and it fails. Eaeiou matches because the a is
preceded by zero or more characers that arent eiou.

This works for me:
while (<STDIN>) {
if (/a.*e.*i.*o.*u/i && !/e.*a/i && !/i.*e/i && !/o.*i/i && !/u.*o/i) {
print;
}
}

Anonymous