Errata for the Catalyst Guide by Diment and Trout

NOTE: This page is not the authoritative source for errata: The Apress site is.

Page xxvii - Refers to an invalid URL

(Fixed by book author, 2009-06-30)

"Please check the Catalyst wiki at to see if a binary distribution is available for your platform." - the URL returns 404 Not Found.

Page 27 - inaccurate description of ASCII and UTF-8

The text says, "NOTE: A byte is the length of a single ASCII character. A UTF-8 glyph, the most common encoding of non-European characters, can be 1 and 3 bytes long."

A couple of notes:

  1. ASCII is a 7-bit standard; the characters 128-255 aren't defined in ASCII (although they are defined in other encodings such as ISO-8869-1 Latin 1). So, technically, a byte is actually one bit longer than a single ASCII character.

  2. In UTF-8, a character can be encoded as 1, 2, 3, or 4 bytes (not 1-3).

  3. The wording "UTF-8 glyph" confuses characters and glyphs. A glyph is the physical realization of an abstract character (think blob of ink on the page). 'e' in Times 10 point and 'e' in Garamond 16 point italic are two glyphs which realize the abstract character 'e'. Also, the encoding of a character is technically not the same thing as the abstract character itself ('e' is 'e', even if ASCII and, say, EBCDIC encode it differently). Suggested wording: The UTF-8 encoding of a character takes 1, 2, 3, or 4 bytes.

Page 30 - Refers to filename t/00-basic.t

Filename is in fact t/00-load.t

(Note: pages 29 and 31 correctly refer to t/00-load.t)

Page 34 - END__ typo in lib/Greeter/

The second example on page 34 is missing the preceding __ for the END tag. The prove command at the bottom of page 35 fails until this is corrected.

Page 42 - Inheritance example ns::clean inconsistency

Code example My::Thing has a line that uses namespace::clean but the following description paragraph speaks as if it had used namespace::autoclean. While the code example would still work, this is inconsistent with both its own description and with best practices. Unlike with page 85 where ns::clean is used on purpose in that section only, there is no such claim on page 42.

Page 63: doesn't work as written

The line [% WRAPPER title = ; END %] appears to be an error. According to ash on #catalyst, and confirmed by my own test, you need [% WRAPPER ... %] at the start of the file and [% END %] at the end of the file.

Page 145 - Database Models - Result Class Name Typo

The result class in line two of the second paragraph of the Relationship Bridges section should read as:


Page 181 - The Catalyst Dispatcher - Swap go and visit

Sentences starting with "If we use go" and "If we use visit" should swap go and visit.