Errata

Learning Perl/Tk

Errata for Learning Perl/Tk

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 "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
Printed
Page xv

Final paragraph on the page, the text used to read:

"... find all the source code from the book ..."

Changed to:

"... find source code for programs from the book ..."

Anonymous    May 01, 1999
Printed
Page 1

Added text to footnote. The text used to read:

"Unless you get the Win32 binary from CPAN"

It now reads:

"Unless you get the Win32 binary from CPAN or another pre-built
distribution such as ActiveState Perl"

Anonymous    Mar 01, 1999
Printed
Page 1, 5
Tk does not in fact come with the latest ActiveState Perl unless one

knows that one should install Perl and then go on-line and issue PPM and
INSTALL TK. You must use the ppm module manager to install the Tk module (and
do special things if there is a firewall). Change the text on this page to
make it fit without breaking the current page breaks?

Anonymous   
Printed
Page 2

Paragraph 2; the text used to read:

"... great binary distribution that has Perl ..."

Changed to:

"... great binary distribution of Perl ... "

Anonymous    May 01, 1999
Printed
Page 4
Paragraph 7 (counting the code snippet as a paragraph), the right side of

the paragraph had a "bumpy" edge. Justified to the right.

Anonymous    May 01, 1999
Printed
Page 5

1st paragraph, 3rd line. Used to read:

"... (easy in Unix;, not so easy in MS ..."
^^^^^^
Took out the comma.

Anonymous    May 01, 1999
Printed
Page 5

5th paragraph, in discussion of the tar file. Used to read:

"Simply rename the file back so that is has a ..."
^^
Changed to:

"Simply rename the file back so that it has a ..."

^^

Anonymous    May 01, 1999
Printed
Page 5
The code now reads: perl -e 'use Tk', but the "see if you already have

the Tk module installed" fails on Win32/ActiveState installations, for
which a note was added:

(Note: windows users will need to use perl -e "use Tk")

Anonymous    May 01, 1999
Printed
Page 7

In code snippet near bottom of page, the line used to read:

$mw = new MainWindow; # or $mw = MainWindow => new();
$top = $mw -> Toplevel();
$frame = $mw -> Frame (-borderwidth => 2, -relief => "groove");

Now reads:

$mw = new MainWindow; # or $mw = MainWindow->new();
$top = $mw->Toplevel();
$frame = $mw->Frame(-borderwidth => 2, -relief => "groove");

Removed spaces as indicated in each line, and changed => to a -> in the first
line.

Anonymous    Mar 01, 1999
Printed
Page 8

Paragraph 4, before 2nd code snippet. Last sentence used to read:

"... on its own separate line, after the last option/value pair:"

Changed to:

"... on its own separate line, after the last option/value pair, which
retains the comma for formatting ease:"

Anonymous    Mar 01, 1999
Printed
Page 8
In the next paragraph this text

"... without having to mess with parentheses and semicolons."

Was changed to:

"... without having to mess with parentheses, semicolons or commas."

Anonymous    Mar 01, 1999
Printed
Page 9

Second code snippet on the page used to read:

$button -> pack();

Removed spaces so that it reads like this:

$button->pack();

Anonymous    Mar 01, 1999
Printed
Page 11

On very first line of this page, deleted the comma so the text now reads:

"... our window say "Hello World" and create a button ..."

Anonymous    Mar 01, 1999
Printed
Page 11

Added quotes in the fourth line of sample code, it now reads:

$mw->title("Hello World");

Anonymous    Mar 01, 1999
Printed
Page 17

The second usage statement for pack used to read:

$widget->pack( [ option => value, ] );

Inserted ellipses to indicate additional possible options:

$widget->pack( [ option => value, ... ] );
^^^^^

Anonymous    Mar 01, 1999
Printed
Page 17
In code segment, added a quotation mark

don't send any options to pack

Anonymous    Mar 01, 1999
Printed
Page 35

Added ellipses to first code snippet. It now reads:

$widget1->grid( [ $widget2, ... , ] [ option => value, ... ] );

Anonymous    Mar 01, 1999
Printed
Page 35

Second paragraph. Second sentence used to read:

You can also invoke grid() on each window independently ...

Changed to:

You can also invoke grid() on each widget independently ...

^^^^^^

Anonymous    Mar 01, 1999
Printed
Page 58
In Button Options section, the -anchor option, bolded the 'center'

option to show that it is the default.

Anonymous    Mar 01, 1999
Printed
Page 58
Under -borderwidth option, the second line, the word -relief

was spaced widely. Tightened text.

Anonymous    Mar 01, 1999
Printed
Page 59

Under -highlightbackground option (2nd on page), the text used to read:

Sets the color of a nonfocus rectangle.

Changed to:

Sets the color of the area behind the focus rectangle (shows
when widget does not have focus).

Anonymous    Mar 01, 1999
Printed
Page 59

Under -justify, text used to read:

Sets the side of the button against which the text will justify itself.

Changed to:

Sets the side of the button against which multiline text will justify
itself.

Anonymous    Mar 01, 1999
Printed
Page 59

As part of -relief option, added the -solid option. Now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 62
The example for creating an anonymous sub showed the following code

sub { # do something }

Changed to:

sub { .. do something .. }
^^^^^^^^^^^^^^^^^^
And made all indicated by ^^^ above in italics

Anonymous    Mar 01, 1999
Printed
Page 64

First paragraph, last sentence used to read:

"... is undefined and errors start..."

Changed to:

" could be undefined and errors start..."

Anonymous    May 01, 1999
Printed
Page 64

5th paragraph, last sentence used to read:

"... it makes sense to put it in a separate subroutine."

changed to:

"... it makes sense to put it in a named subroutine."

Anonymous    May 01, 1999
Printed
Page 64
6th paragraph, started with "If all this anonymous stuff is confusing.."

replaced with:

This is meant to be a brief overview of anonymous subroutines
as it relates to Perl/Tk.
The Camel Book* has all the information you would ever want and more.

Anonymous    May 01, 1999
Printed
Page 65
Changed Figure 3-4 so that the second button's text is "Enable Exit," not

"Disable Exit."

Anonymous    Mar 01, 1999
Printed
Page 68

Last line on page, added 'solid'. Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 75
Changed Figure 3-18 so that the second button's text is "Enable Exit," not

"Disable Exit."

Anonymous    Mar 01, 1999
Printed
Page 78
Inserted footnote, placed * in the first sentence on page

"The highlight rectangle* is normally displayed..."
^

Inserted this footnote:

*On Win32 systems, the highlight rectangle is drawn as a dashed line
within the widget.

Anonymous    Mar 01, 1999
Printed
Page 78
Deleted the sentence before figure 3-22 that said

(Both buttons in Figure 3-22 have a -highlightthickness of 10)

Anonymous    Mar 01, 1999
Printed
Page 85

Added 'solid' to the -relief option. Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 85

Under -selectimage option, the text used to read:

"Indicates whether image is displayed instead of text ... "

Changed to:

"Indicates the image to display intead of text..."

Anonymous    Mar 01, 1999
Printed
Page 91

In Checkbutton Style section now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 97

The -relief option now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 104

Under the -justify option used to read:

Sets the side of the label against which the text will justify.

It now reads:

Sets the side of the label against which multi-line text will justify.

Anonymous    May 01, 1999
Printed
Page 107

In the last paragraph, the line used to read:

"For some reason, when you fill..."

It now reads:

"When using non-multiple line labels, when you fill..."

Anonymous    May 01, 1999
Printed
Page 110

First line of code snippet on the page now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 113

Added quotes to list of index types. The text used to read:

anchor

Changed to:

'anchor'

Last index type, end heading. Used to read:

end

Changed to:

'end'

Anonymous    Mar 01, 1999
Printed
Page 117

Last non-code sentence on the page used to read:

To create a scrollbar and associate it with the entry widgets, do this:

changed to:

To create a scrollbar and associate it with an entry widget, do this:
^^^^^^^^^^^^^^^^

Anonymous    May 01, 1999
Printed
Page 119

Last code snippet on the page used to read:

$entry->index(index);

Changed to:

$numindex = $entry->index(index);

Anonymous    Mar 01, 1999
Printed
Page 129

First paragraph, 4th line down. Text used to read:

"... -yscrollcommand option has the set command and our scrollbar..."
^^^
Left wording the same, but put the word 'set' in courier font.

Anonymous    Mar 01, 1999
Printed
Page 130

In -relief option, added 'solid.' Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 133

First code snippet on the page reads:

$scrollbar->configure(-command => ['yview' => $lb]);
^^^^^^^
The word -command is italicized, made it normal courier font.

Anonymous    Mar 01, 1999
Printed
Page 133
In code heading of xviewMoveto and yviewMoveto

$widget->xviewMoveto(fraction); # or
$widget->yviewMoveto(fraction);

Changed the word 'fraction' in both lines to italics, indicating an argument
to be replaced.

Anonymous    Mar 01, 1999
Printed
Page 134

Next to last paragraph, second sentence used to read:

"... would page up/down by the number of lines."

Changed to:

"... would page up/down by the number of lines shown in the listbox."

Anonymous    May 01, 1999
Printed
Page 137

First paragraph, second sentence reads:

"... three possible results from fraction: 0.0..."
^^^^^^^^
The work 'fraction' was in italics but isn't anymore (it is the name of an
actual method).

Anonymous    Mar 01, 1999
Printed
Page 140

now reads:


$list->yviewMoveto($top);

should read:

$list->yview('moveto',$top);

Anonymous   
Printed
Page 141

The code snippet once read:

$lb = $parent->Listbox( options ...)->pack;

Changed to:

$lb = $parent->Listbox( [ options ...] )->pack;
^^^^^^^^^^^^^^
marked with ^^ is italics.

Anonymous    Mar 01, 1999
Printed
Page 142
First complete sentence on the page

"... to use the insert method to insert items into it:"
^^^^^^

The second insert was courier font, the first one is now instead:

"... to use the insert method to insert items into it:"
^^^^^^

Anonymous    Mar 01, 1999
Printed
Page 143

In the -relief option; added 'solid.' Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 148

Last sentence on page used to read:

"... returns a list on indexes, not elements."

Changed on to of:

"... returns a list of indexes, not elements."
^^

Anonymous    May 01, 1999
Printed
Page 152
in the Listbox example, the code

# This routine is called each time we push a keyboard key
sub do_search {
my ($entry, $key) = @_;

Add right after MainLoop; as the comment to the sub do_search
comment (first line repeated for clarity):

# This routine is called eat time we push a keyboard key
# Note that the 2nd arg, $key, is the specific key char
# the user pressed, and not the entire $search string.

Anonymous   
Printed
Page 154

usage statement at bottom of page used to read:

$text = $parent->Text( options ... )->pack;

Changed to:

$text = $parent->Text( [ options ... ])->pack;
^^^^^^^^^^^^^^^
All characters marked by ^^ are italics.

Anonymous    May 01, 1999
Printed
Page 156
Added 'solid' to the -relief option

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 156
In the description of -insertborderwidth option, change

Changes the width of the insert cursor.

to

Changes the width of the insert cursor's borders.


Anonymous   
Printed
Page 157
Description of -tabs option, change text in parens from


(or not tab stops)

to

(or use the default tab stops, which is ever 8 chars)

Anonymous   
Printed
Page 160

In code snippet, second line used to read:

... #ts at 1 inch, 1.5 inch and every _ inch after
^
Took out spaces.

Anonymous    Mar 01, 1999
Printed
Page 160
On line 4: ``every _ inch'' now reads ``every .5 inch''.

Anonymous    May 01, 1999
Printed
Page 162
In the second sentence under chars/lines modifier, change "end - 1

chars" to "end - 1 lines".

Anonymous   
Printed
Page 166

In first code example, the first line used to read:

$t->Text()->pack();

Changed to:

$t = $mw->Text()->pack();

Anonymous    Mar 01, 1999
Printed
Page 168
The first sentence of the page, change from


Each list within the list contains two elements: the option name
and the value.

to:

Each list within the list contains five elements: two of which are
the option name and value.

Change code snippet to read:

@list = $text->tagConfigure("blue", -font);

Anonymous   
Printed
Page 168
4th paragraph in section "Adding a Tag to Existing Text," change

If both tags try to alter the same option (such as -font),
the last setting for that option wins.

to

If both tags try to alter the same option (such as -font),
the last setting for that option wins, unless the tag's
priority was changed using tagRaise or tagLower.

*** put tagRaise and tagLower in courier font.

Anonymous   
Printed
Page 170
1st sentence in section "Raising and Lowering Tags," change

When there are several tags applied to the same text,
the last tag added to the text overrides the previous ones,
and its....

to

When there are several tags applied to the same text,
the configuration options of the last tag added are
given priority.

Anonymous   
Printed
Page 172
In the 'Deleting Text' paragraph, last sentence

$text->delete(0, 'end')
^^^^
Changed to:

$text->delete("1.0", 'end')

Anonymous    Mar 01, 1999
Printed
Page 173
In the last line, change last bullet from


Baseline position of the line, measured from x
to

Baseline position, measured from the X coord returned
as first element

Anonymous   
Printed
Page 175
In the second paragraph in section "Marks", change sentence from:


If the gravity is 'left', the text will be inserted to
the left of the mark and the mark will refer to the left
of the last character inserted.
to:

If the gravity is 'left', the text will be inserted to
the right, and the mark stays on the left of the last character
inserted. When using 'left', the text seems to be inserted backwards.

Anonymous   
Printed
Page 175
in the 3rd paragraph in section "Marks," change text from


(as long as the mouse button is pressed).

to

(as long as the mouse button is not pressed).

Anonymous   
Printed
Page 178
Line with -padx => amount and -pady => amount now have the same font.

Anonymous    May 01, 1999
Printed
Page 184

Second code snippet, used to read:

$canvas = $mw->Scrolled("canvas");

Uppercased the c in the quoted word:

$canvas = $mw->Scrolled("Canvas");
^

Anonymous    Mar 01, 1999
Printed
Page 184
Third code snippet, same problem. Changed

$c = $mw->Scrolled("canvas")->pack;

to:

$c = $mw->Scrolled("Canvas")->pack;
^

Anonymous    Mar 01, 1999
Printed
Page 187

Added 'solid' to the -relief option. Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 188

First paragraph, last sentence used to read:

"...the tag or ID is the one returned from the ..."

Changed to:

"...the ID is what is returned from the ..."

Anonymous    Mar 01, 1999
Printed
Page 188

Under -extent option, last sentence used to read:

"... is the specified of degrees ..."

Changed to:

"... is the specified number of degress ..."
^^^^^^

Anonymous    May 01, 1999
Printed
Page 188
in code fragment under -extent option

# This will draw _ of an oval

should be

# This will draw 3/4 of an oval

Anonymous   
Printed
Page 189

Under -start option, second sentence used to read:

"... is at three o'clock (8 degrees)."

Changed the 8 to a 0:

"... is at three o'clock (0 degrees)."

Anonymous    Mar 01, 1999
Printed
Page 190
in paragraph before the -anchor option, change


The other captions available for createBitmap are:

to

The options available for createBitmap are:

Anonymous   
Printed
Page 196
Change sentence under Deleting Characters from


If the end index isn't specified, all the characters to the
end of the string will be deleted (including any "
" characters).

to

If the end index isn't specified, only the character at $first
is deleted, leaving the rest of the string intact.

**Make sure to put $first into courier font.

Anonymous   
Printed
Page 197

In fourth paragraph, first sentence used to read:

"... by using selectAdjust: $canvas->select("adjust", ..."

Changed to:

"... by using selectAdjust: $canvas->selectAdjust(..."
^^^^^^^^^

Anonymous    Mar 01, 1999
Printed
Page 198

Code snippet, first line used to read:

$canvas->createWindow(0,0, $canvas->Button(-text => "Button",

Added the -window option by changing to:

$canvas->createWindow(0,0, -window => $canvas->Button(-text => "Button",

Anonymous    Mar 01, 1999
Printed
Page 200

Second paragraph, second sentence used to read:

Items added to the canvas after the "all" tag is called will not...

Changed to:

Items added to the canvas after the call to addtag will not...
^^^^^^^^^^^^^^^^^^^
Make 'addtag' courier font.

Anonymous    Mar 01, 1999
Printed
Page 200
Under addtag "closest" change sentence from


This allows you to delete a subset of the tabs,

to

This allows you to delete a subset of the tags,

Anonymous   
Printed
Page 200
Under the description of "closest" keyword, change

There are two more possible arguments for this form of
addtag. You can specify a number that indicates how far
out from the x,y coordinates items are to be considered.
For instance, if you want an item that is within 10 pixels
to be considered "closest", make the call as follows:

to

If more than one item overlaps the specified point then
the last item added in the stack will be returned. To
add to the area considered a part of the overlap, you
specify an additional number that will essentially enlarge
the overlap area. To add 10 pixels to the overlap area:

Anonymous   
Printed
Page 200
Under the description of "enclosed" keyword, change the last

part of paragraph from:

x1 < x2 and y1 < y2

to

x1 <= x2 and y1 <= y2

Anonymous   
Printed
Page 201
In section "Binding Items Using Tags," remove all Tk:: portions in front

of Tk:: bind in code examples only. Do not change the text.

Anonymous   
Printed
Page 205
Under the -y option, change


Default is the left edge of the window.

to

Default is the top edge of the window.

Anonymous   
Printed
Page 207

In the drawing program example in sub bind_start the test used to read:

if ($draw_item eq "rectangle"||#draw_item eq "oval"||.....

It now reads:

if ($draw_item eq "rectangle"||$draw_item eq "oval"||....

Anonymous    Mar 01, 1999
Printed
Page 211
Under the description of -bigincrement option, change

... causing the value to change by 1/10 the top value of the scale.

to:

... causing the value to change by 1/10 the total range of the scale.

Anonymous   
Printed
Page 212

Added 'solid' to -relief option. Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 213
Change 3rd sentence from


If you happen to switch them, the scale will still display with
the higher value on the right and the lower value on the left.

to

If you happen to switch them, the scale will simply display
the -from value on the left and the -to value on the right.

***Make sure and put -from and -to in courier font.

Anonymous   
Printed
Page 224
Under -textvariable option, change


The information displayed in $variable should be...

to

The information contained in $variable should be...


Anonymous   
Printed
Page 224
Delete the following sentence (I think it is a version thing)


Torn-off menus won't be be updated when other events in the
program are updated, so it is a good idea to limit your use
of tear-off menus.

Anonymous   
Printed
Page 227
In section "Radiobutton item type," change in last paragraph


-variable => $variable
to

-variable => $variable

**Make sure to keep courier font

Anonymous   
Printed
Page 230
In the second paragraph, change


We can use the menubutton widget's menu() method to return the
actual menu item and then create the new menu as a child of
the menu item.

to:

We can use the menubutton widget's menu() method to return the
actual menu widget and then create the new menu as a child of
that menu widget.

Anonymous   
Printed
Page 239
In the usage of -relief option, change from


-relief => 'flat' | .... | 'sunken'

to

-relief => 'flat' | .... | 'sunken' | 'solid'

Anonymous   
Printed
Page 240
In section "Menu Style," change from


-relief => 'flat' | .... | 'sunken'

to

-relief => 'flat' | .... | 'sunken' | 'solid'

Anonymous   
Printed
Page 240
In the middle of the page, change sentence from


Changing the -borderwidth...

to

Increasing the -borderwidth...

Anonymous   
Printed
Page 248
In the last sentence of section "Optionmenu Widget", change from


To add items, use the -options command instead of...

to:

To add items, use the -options option instead of...

Anonymous   
Printed
Page 249

The first line after the code example used to read:

"In this example, the written words are displayed in the menu (and are
stored in $textvariable)..."

It now reads:

"In this example, the written words are displayed in the menu (and are
stored in $displayed)..."

Anonymous    Mar 01, 1999
Printed
Page 249

In the first code example, the last two lines read:


-textvariable => $displayed,
-variable => $number

Change to

-textvariable => $displayed,
-variable => $number

Anonymous   
Printed
Page 249
In the 2nd(3rd?) paragraph ("The -command option..") change


The default arguments to the callback are the variables
assigned with -textvariable and then -variable (if it exists).

to:

The default arguments to the callback is the stored value
for the menu, regardless of -textvariable and -variable
option values.

Anonymous   
Printed
Page 252
Syntax of -colormap option, change sentence from


Default is undef.

to

Default is undef, which means to use the parent's colormap.

Anonymous   
Printed
Page 253
Added 'solid' to the -relief option

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 255
Near the bottom of the page, in paragraph about -visual option, change

from:

The number indicates the depth of color used (2 = black/white)

to

The number indicates the number of colors used (2 = black/white)

Anonymous   
Printed
Page 259

Added 'solid' to the -relief option. Text now reads:

-relief => 'flat' | 'groove' | 'raised' | 'ridge' | 'sunken' | 'solid'

Anonymous    Mar 01, 1999
Printed
Page 260
In the regular expression for geometry strings, the first

two characters were reversed. The caret (^) now comes first, then the
equals sign. It used to read:

=^?(d+xd+)?([+-]d+[+-]d+)?$

It now reads:

^=?(d+xd+)?([+-]d+[+-]d+)?$

Anonymous    May 01, 1999
Printed
Page 265
In section "Assigning an Application Name," change section title to

"Setting the Client Machine Name" and the contents of that section should be
replaced with this:

You can set the property stored in WM_CLIENT_MACHINE by
calling the client method with an argument:

$toplevel->client("name");

To find out the current name sent:

$name = $toplevel->client;

If you send an empty string to client, then you'll erase
any value previously stored in WM_CLIENT_MACHINE.

Anonymous   
Printed
Page 267
the second half of the paragraph at section "The Focus Model," change

sentence from:

The changes present in your application depend completely...

to

The way focus changes in your application depends completely...
^^^^^^^^^^ ^^^

Anonymous   
Printed
Page 268
In section "Who Placed the Window?" change last sentence on page from


, the user manually placed the window when it was created.

to:

, the user requested the position of the window.

Anonymous   
Printed
Page 269
In section "Not a Real Window," change the text


(such as a pull-down menu)

to:

(such as a torn-off menu or a dialog)

Anonymous   
Printed
Page 272
3rd paragraph under $widget->bind(tag ...), change the text from


If we didn't, we would get a list of....

to:

If we didn't specify a callback, we would get a list of....

Anonymous   
Printed
Page 274
Under Button# modifier, change from


, if you want to trigger an event when the user clicks on
mouse button 1 and then mouse button 3, you can use...

to

, if you want to trigger an event when the user clicks on
mouse button 3 while holding down mouse button 1, you can use...

Also change:

.. would not be triggered if you clicked mouse button 3 and
then mouse button 1.

to

.. would not be triggered if you clicked mouse button 1 while
holding down mouse buttom 3.

Anonymous   
Printed
Page 274
Under Double modifier, change


Double puts a constraint on the minimum amount of time...

to

Double puts a constraint on the maximum amount of time...

Anonymous   
Printed
Page 280

The second line in first code snippet used to read:

# prints this: Tk::Button.button.all

The spaces were missing. Changed to:

# prints this: Tk::Button .button . all

Anonymous    Mar 01, 1999
Printed
Page 280

The fourth line in first code snippet used to read:

# prints this: MainWindow.all

The spaces were missing. Changed to:

# prints this: MainWindow . all

Anonymous    Mar 01, 1999
Printed
Page 289
In the last sentence, change


ConfigDefaults

to

ConfigSpecs

**Make sure to leave the font as courier.

Anonymous   
Printed
Page 304

Last sentence on page used to read:

"...until a variable is set, call waitVariable:"

Changed to:

"...until a variable's value is changed, call waitVariable:"
^^^^^^^^^^^

Anonymous    Mar 01, 1999
Printed
Page 305

Text at top of page used to read:

The value of $var must be undefined before you call waitVariable and
processing will resume as soon as $var is defined.

Changed to:

Processing will continue as soon as the value contained within $var is
changed to something different.

Anonymous    Mar 01, 1999
Printed
Page 311
Added text in "The cget Method" section

"It only returns the current value of the option..."

Changed to:

"It only returns the current value (or address if the option stores a
reference) of the option..."

Anonymous    Mar 01, 1999
Printed
Page 311
Added in "The cget Method" section code example (format courier)

# return reference :
print $option_menu->cget(-textvariable), "
";
# return actual value :
print ${$option_menu->cget(-textvariable)}, "
";
# or...
$ref = $option_menu->cget(-textvariable);
print $$ref, "
";

(Colophon) Paragraph 3 used to read:

Newly hatched emus weigh about 15 pounds (440 g).

That's a big baby emu.
It now reads:

Newly hatched emus weigh about 15 ounces (440 g).

Anonymous    May 01, 1999
Printed
Page 336
from the footnote, change the sentence


The curly braces are not required.

to:

The curly braces are not required unless there is a
space in the font name.

Anonymous   
Printed
Page 355
index

Add the entry sticky, 37-38.

Anonymous   
Printed
Page 358
The last page of the index is missing (blank) from the March and May

reprints. Please consult the online index at

http://www.ora.com/catalog/9781565923140/inx.html

for entries

width (continued)
entry

through

yview method
scrollbar

Anonymous