Programming Web Services With Perl
The home-page for code samples, questions, errata and general links

Let there be no suspense: my advice is that, if you're programming Web services, you should have a copy of Programming Web Services with Perl on your desk — even if your own programming isn't in Perl. – Cameron Laird

Programming Web Services With Perl, by Randy J. Ray and Pavel Kulchenko, was released in December of 2002, published by O'Reilly & Associates. The Library of Congress ISBN number for the book is 0-596-00206-8.

Book-Specific Links
Web Services/Perl Links

Reviews

The following is a list of reviews of PWSWP from various sources. Please let me know of any other reviews I may have missed:

Errata

No matter how diligent the process of general editing, technical editing, or simple re-reading, errors still make it through to the final copy. The following are the currently-known errata against PWSWP. For each item, a categorization is given. These are defined as follows:

Label Meaning
CLARIFICATION This category of change is meant simply to clarify a sentence, passage or section that may otherwise be obfuscated or ambiguous.
CORRECTION If this marking is given, the change represents the correction of an error, usually typographic in nature. This is generally applied to code examples or XML fragments. Language corrections fall under the next heading (the exception being if an acronym is expanded incorrectly, the correction would have this tag.)
GRAMMAR This tag is used to mark those changes that represent corrections to the grammatical structure of the sentence or phrase, and other text-based issues.
UPDATE This denotes an update to information that is tangential to the book itself, such as issues around software release dates or W3C specification decisions.

A note regarding the errata that refer to the "-w" flag of the Perl binary: It is generally a good idea to have this on applications when trying out new concepts and ideas. All the code in the book should have had this set in the text examples, and all the code distributed in the bundled examples does have it included. The errata items bring the text in line with the code itself.

Within the following table, the location of errata is given by page number, followed by one or both of paragraph and line. If paragraph is not specified, then the line count runs from the top of the page. If a paragraph is given, the line count is limited to within the paragraph. When counting lines or paragraphs down the page, skip all section and example headings or titles. If a correction is made to one of these, it will be more explicitly pointed out in the text. Generally, the only time that a paragraph is not specified is when the errata lies within a code or XML example, where counting paragraphs has no real meaning. The current errata are:

Page: 17 Line: 2 CLARIFICATION

Replace "the previous explanation of namespaces" with "the example of namespaces in Example 2-1".

Page: 21 Paragraph: 3 Line: 6 GRAMMAR

Replace "don't" with "doesn't".

Page: 26 Paragraph: 5 Line: 2 GRAMMAR

Replace "don't" with "doesn't".

Page: 28 Paragraph: 3 Line: 1 GRAMMAR

Replace "at once" with "both".

Page: 40 Paragraph: 1 Line: 5 CLARIFICATION

Replace "content-encoding" with "content encoding".

The hyphen implies the "Content-Encoding" HTTP header, and here I am referring instead to the general concept of content encoding.

Page: 40 Paragraph: 3 Line: 6 CORRECTION

Replace "XML-RP-compliant" with "XML-RPC-compliant".

Page: 42 Paragraph: 2 Line: 3 CORRECTION

Replace "Example 3-8" with "Example 3-5".

Page: 47 Line: 33 CORRECTION

Replace "resolve_name" (in the error message) with "get_data".

Page: 52 Paragraph: 3 UPDATE

As of this current errata update, the RPC::XMLSimple package has not yet been released to CPAN. Until it is released, none of the examples using this module can be run as presented.

Page: 53 Line: 24 CORRECTION

The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.

Page: 59 Line: 16 CORRECTION

The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.

Page: 68 Line: 4 CORRECTION

The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.

Page: 115 Line: 20 CORRECTION

Append " -w" after "perl".

Page: 120 Line: 30 CORRECTION

Append " -w" after "perl".

Page: 146 Line: 10 CORRECTION

Append " -w" after "perl".

Page: 151 Line: 27 CORRECTION

Append " -w" after "perl".

Page: 157 Line: 16 CORRECTION

Append " -w" after "perl".

Page: 165 Line: 26 CORRECTION

Append " -w" after "perl".

Page: 166 Line: 25 CORRECTION

Append " -w" after "perl".

Page: 168 Line: 20 CORRECTION

Append " -w" after "perl".

Page: 170 Line: 1 CORRECTION

Append " -w" after "perl".

Page: 171 Line: 18 CORRECTION

Append " -w" after "perl".

Page: 172 Line: 20 CORRECTION

Append " -w" after "perl".

Page: 172 Line: 29 CORRECTION

Replace "maito" inside the string passed to sprintf with "mailto".

Page: 174 Line: 9 CORRECTION

Append " -w" after "perl".

Page: 175 Line: 6 CORRECTION

Append " -w" after "perl".

Page: 176 Line: 23 CORRECTION

Append " -w" after "perl".

Page: 186 Line: 32 CORRECTION

The last character of this line, ">", should be replaced with "/>" in order to make it valid XML.

Page: 203 Paragraph: 2 Line: 3 CORRECTION

Replace "soap:address" with "http:address".

Page: 213 Paragraph: 9 Line: 5 GRAMMAR

Replace "thought" with "though".

Page: 215 Paragraph: 2 Line: 1 GRAMMAR

Replace "is the usually the" with "is usually the".

Page: 232 Line: 3 CORRECTION

Append " -w" after "perl".

Page: 237 Paragraph: 1 Line: 6 GRAMMAR

Replace "more" with "most".

Page: 245 Paragraph: 4 Line: 2 GRAMMAR

Replace "different" with "difference".

Page: 247 Paragraph: 4 Line: 5 CORRECTION

Replace "out of hand" with "out-of-band".

Page: 251 Paragraph: 2 Line: 4 GRAMMAR

Replace "sequence," with "sequence" (remove the comma).

Page: 253 Line: 24 CORRECTION

Replace "#!perl" with "#!/usr/bin/perl".

This and the identical changes later are for consistency with other code examples.

Page: 274 Line: 9 CORRECTION

Replace "#!perl" with "#!/usr/bin/perl".

Page: 274 Line: 19 CORRECTION

Replace "#!perl" with "#!/usr/bin/perl".

Page: 297 Line: 1 CORRECTION

Replace "Description" with "Definition".

Page: 431 Line: 9 CORRECTION

Append " -w" after "perl".

The errata list is also available as plain text.

The table of errata is produced using a simple XML representation of the collected data from O'Reilly & Associates, reader feedback, and my own reading of the final published copy. It is transformed into a XHTML fragment using an XSLT stylesheet and the Xalan-J XSLT engine, version 2.5.1. The raw errata XML may be downloaded here, and the XSLT stylesheet used to generate the XHTML fragment may be downloaded here. The stylesheet used to render into plain text utilizes several recipes from the O'Reilly & Associates volume, XSLT Cookbook, by Sal Mangano. The text-producing XSLT template may be downloaded here.


Valid XHTML 1.0! Valid CSS!