Errata


Print Print Icon

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. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "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



Version Location Description Submitted By Corrected
Printed Page 11
The backquotes/backtics are backwards. The line

$uptime = '/usr/ucb/uptime';

should be:

$uptime = `/usr/ucb/uptime`;

Anonymous 
Printed Page 11
The backquotes/backtics are backwards. The line

$uptime = '/usr/ucb/uptime';

should be:

$uptime = `/usr/ucb/uptime`;

Anonymous 
Printed Page 20
The lines

$host_address = "bu.edu";
$ip_address = "128.197";

should read:

$host_address = 'bu.edu';
$ip_address = '128.197';

We need single quotes to preserve the backslashes.

Anonymous 
Printed Page 20
The lines

$host_address = "bu.edu";
$ip_address = "128.197";

should read:

$host_address = 'bu.edu';
$ip_address = '128.197';

We need single quotes to preserve the backslashes.

Anonymous 
Printed Page 45
The backquotes/backtics are backwards. The line

$uptime = '/usr/ucb/uptime';

should be:

$uptime = `/usr/ucb/uptime`;

Anonymous 
Printed Page 45
The backquotes/backtics are backwards. The line

$uptime = '/usr/ucb/uptime';

should be:

$uptime = `/usr/ucb/uptime`;

Anonymous 
Printed Page 46

The line of code now reads:

chop ($current_date = '/bin/date');

It should read:

chop ($current_date = `/bin/date`);


Anonymous 
Printed Page 46

The line of code now reads:

chop ($current_date = '/bin/date');

It should read:

chop ($current_date = `/bin/date`);


Anonymous 
Printed Page 54
The query information

install.x=250&install_y=20

should be:

install.x=250&install.y=20

Anonymous 
Printed Page 54
The query information

install.x=250&install_y=20

should be:

install.x=250&install.y=20

Anonymous 
Printed Page 64
code 1: | meet you ", should be

| meet you, ",

Anonymous 
Printed Page 64
code 1: | meet you ", should be

| meet you, ",

Anonymous 
Printed Page 65
The "simple_data" on the third line of the first paragraph should

be "simple_form" instead.

Anonymous 
Printed Page 65
The "simple_data" on the third line of the first paragraph should

be "simple_form" instead.

Anonymous 
Printed Page 66
The second sentence of the page ("The result is ... into the

array.") should read as follows:

The result is to fill the array key_value_pairs with entries
in the form of "key=value".

Anonymous 
Printed Page 66
The second sentence of the page ("The result is ... into the

array.") should read as follows:

The result is to fill the array key_value_pairs with entries
in the form of "key=value".

Anonymous 
Printed Page 75
The line

printf("Unrecognized method
", cgi->request_method);

should read:

printf("Unrecognized method: %s
", cgi->request_method);

Anonymous 
Printed Page 75
The line

printf("Unrecognized method
", cgi->request_method);

should read:

printf("Unrecognized method: %s
", cgi->request_method);

Anonymous 
Printed Page 100

The first sentence reads:

"The %D format specifies that the date should be in dd/mm/yy
format..."

That's incorrect -- the %D format produces a date in mm/dd/yy format.

Anonymous 
Printed Page 100

The second sentence reads:

"%r format specifies "hh/mm/yy AM|PM" format..."

It should read:

"%r format specifies "hh/mm/ss AM|PM" format..."

Anonymous 
Printed Page 100
There are a few errors in the table. Here is the original table

along with the corrections:

Format Value Example
------ ----- -------

%a Day of the week abbreviation Sun
%A Day of the week Sunday
%b Month name abbreviation (also %h) Jan
%B Month name January
%d Date 1 (NOT 01)

This is incorrect; %d actually returns "01" -- just the opposite
of what's stated.

%D Date as "%m/%d/%y" 06/23/95
%e Date 01

%e returns "1" and not "01". The %d and %e are mixed up.

%H 24-hour clock hour 13
%I 12-hour clock hour 1

%I returns the hour with a leading zero (i.e "01"). This explains
the leading zero in the example for %r.

%j Decimal day of the year 360
%m Month number 11
%M Minutes 08
%p AM | PM a.m.

%p returns am and pm as "AM" and "PM", respectively.

%r Time as "%I:%M:%S AM|PM" 07:17:39 PM

This is equivalent to: "%I:%M:%S %p"

%S Seconds 09
%T 24-hour time as "%H:%M:%S" 16:55:15
%U Week of the year 49
%w Day of the week number 05

%w returns the number WITHOUT a leading zero.

BTW, the information returned by %w is slightly confusing. It
returns the day of the week starting from Sunday (where Sunday
is day 0). For example, Sat, May 4 would be returned as 6.

%y Year of the century 95
%Y Year 1995
%Z Time zone EST

Anonymous 
Printed Page 100

The first sentence reads:

"The %D format specifies that the date should be in dd/mm/yy
format..."

That's incorrect -- the %D format produces a date in mm/dd/yy format.

Anonymous 
Printed Page 100

The second sentence reads:

"%r format specifies "hh/mm/yy AM|PM" format..."

It should read:

"%r format specifies "hh/mm/ss AM|PM" format..."

Anonymous 
Printed Page 100
There are a few errors in the table. Here is the original table

along with the corrections:

Format Value Example
------ ----- -------

%a Day of the week abbreviation Sun
%A Day of the week Sunday
%b Month name abbreviation (also %h) Jan
%B Month name January
%d Date 1 (NOT 01)

This is incorrect; %d actually returns "01" -- just the opposite
of what's stated.

%D Date as "%m/%d/%y" 06/23/95
%e Date 01

%e returns "1" and not "01". The %d and %e are mixed up.

%H 24-hour clock hour 13
%I 12-hour clock hour 1

%I returns the hour with a leading zero (i.e "01"). This explains
the leading zero in the example for %r.

%j Decimal day of the year 360
%m Month number 11
%M Minutes 08
%p AM | PM a.m.

%p returns am and pm as "AM" and "PM", respectively.

%r Time as "%I:%M:%S AM|PM" 07:17:39 PM

This is equivalent to: "%I:%M:%S %p"

%S Seconds 09
%T 24-hour time as "%H:%M:%S" 16:55:15
%U Week of the year 49
%w Day of the week number 05

%w returns the number WITHOUT a leading zero.

BTW, the information returned by %w is slightly confusing. It
returns the day of the week starting from Sunday (where Sunday
is day 0). For example, Sat, May 4 would be returned as 6.

%y Year of the century 95
%Y Year 1995
%Z Time zone EST

Anonymous 
Printed Page 133
The while loop is missing a matching brace in the text. However,

it exists in the online examples:

while (<FILE>){
if (m|[d+/w+/d+:([^:]+)|) {
$time[$1]++;
}
}

Anonymous 
Printed Page 133
The while loop is missing a matching brace in the text. However,

it exists in the online examples:

while (<FILE>){
if (m|[d+/w+/d+:([^:]+)|) {
$time[$1]++;
}
}

Anonymous 
Printed Page 159
'Percentage' mentioned at various points - use of this term is

not strictly correct.

Anonymous 
Printed Page 159
'Percentage' mentioned at various points - use of this term is

not strictly correct.

Anonymous 
Printed Page 162
line 29: 'Each element of the slices array is modified to

contain the percentage value...' Not stricly correct: it is a
'normalised' value, not a 'percentage'.

Anonymous 
Printed Page 162
line 29: 'Each element of the slices array is modified to

contain the percentage value...' Not stricly correct: it is a
'normalised' value, not a 'percentage'.

Anonymous 
Printed Page 201
1st para, line 2: changed "way" to "ways"

Anonymous  Jan 1998
Printed Page 201
1st para, line 2: changed "way" to "ways"

Anonymous  Jan 1998
Printed Page 250
line 3: "Fah" should be "FaH"

Anonymous 
Printed Page 250
line 3: "Fah" should be "FaH"

Anonymous 
Printed Page 255
The fgrep used in the example is GNU fgrep version 2.0 which

supports the -A and -B options.

Anonymous 
Printed Page 255
The fgrep used in the example is GNU fgrep version 2.0 which

supports the -A and -B options.

Anonymous 
Printed Page 265
The line

chop ($hostname = `bin/hostname`);

should read:

chop ($hostname = `/bin/hostname`);

Anonymous 
Printed Page 265
The line

chop ($hostname = `bin/hostname`);

should read:

chop ($hostname = `/bin/hostname`);

Anonymous 
Printed Page 269
The word "posses" should be "possess" on the 6th line of the

largest paragraph.

Anonymous 
Printed Page 269
The word "posses" should be "possess" on the 6th line of the

largest paragraph.

Anonymous 
Printed Page 306
In the second question, "Perl CGI rogram" should be "Perl CGI

program".

Anonymous 
Printed Page 306
In the second question, "Perl CGI rogram" should be "Perl CGI

program".

Anonymous 
Printed Page 326
Modern versions of the NCSA HTTPd server no longer use the

imagemap.conf file. You can pass the map file as extra path
information to the imagemap program directly, like so:

<A HREF="/cgi-bin/imagemap/graphics/dragon.map">
<IMG SRC="/graphics/dragon.gif" ISMAP></A>

where the map file (dragon.map) is stored in the /graphics
directory. Note that this is a virtual path.

Anonymous 
Printed Page 326
Modern versions of the NCSA HTTPd server no longer use the

imagemap.conf file. You can pass the map file as extra path
information to the imagemap program directly, like so:

<A HREF="/cgi-bin/imagemap/graphics/dragon.map">
<IMG SRC="/graphics/dragon.gif" ISMAP></A>

where the map file (dragon.map) is stored in the /graphics
directory. Note that this is a virtual path.

Anonymous 
Printed Page 368
The line

% chmod 711 clock.pl

should be:

% chmod 755 clock.pl

Anonymous 
Printed Page 368
The line

% chmod 711 clock.pl

should be:

% chmod 755 clock.pl

Anonymous 
Printed Page 369
In the first code snippet, the line


<HTML

should be:

<HTML>

Anonymous 
Printed Page 369
In the first code snippet, the line


<HTML

should be:

<HTML>

Anonymous 
Printed Page 374
'Server Simulation' section: 'setenv REQUEST_METHOD ...' line is

duplicated

Anonymous 
Printed Page 374
'Server Simulation' section: 'setenv REQUEST_METHOD ...' line is

duplicated

Anonymous 
Printed Page 385
There is an extraneous closing paren after "Special Edition

Using Perl".

Anonymous 
Printed Page 385
There is an extraneous closing paren after "Special Edition

Using Perl".

Anonymous 
Printed Page 402
On Line 12: '/p..l/' 'l' wrong font (should be Roman)

Anonymous 
Printed Page 402
On Line 12: '/p..l/' 'l' wrong font (should be Roman)

Anonymous 
Printed Page 417

4th line in list of URLs now reads:

ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/

Anonymous  Jan 1998
Printed Page 417

4th line in list of URLs now reads:

ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/

Anonymous  Jan 1998
Printed Page 421

{421} RFC 1341 has been replaced by RFC 1521.

Anonymous 
Printed Page 421

{421} RFC 1341 has been replaced by RFC 1521.

Anonymous 
Printed Page 436
added the following to the next-to-last para.

Whenever possible, our books use RepKover?, a durable and flexible
lay-flat binding. If the page count exceeds RepKover's limit, perfect
binding is used.

Anonymous  Jan 1998
Printed Page 436
added the following to the next-to-last para.

Whenever possible, our books use RepKover?, a durable and flexible
lay-flat binding. If the page count exceeds RepKover's limit, perfect
binding is used.

Anonymous  Jan 1998