Least Helpful Error Message Ever

| No Comments

XML::Parser is useful for testing XML output, mainly because it's in the standard Perl distribution and it's stable. However, I ran into a problem with it yesterday that cost me some time.

Here's some (simplified) code

$parser = new XML::Parser(Style => 'Tree');
$parser->parse($file_name);

Those who know the module well will have spotted the error already. I was faced with this error message:

not well-formed (invalid token) at line 1, column 0, byte 0 at /usr/lib/perl5/[...]/XML/Parser.pm line 187

I tried making my XML output smaller and smaller until it was just one self-closing element. Still I was getting the invalid token error.

Turned out I was calling the wrong method on the parser. A lot of Perl methods are pretty liberal about what they accept, perhaps too liberal at times. $parser->parse accepts a file handle or a string, but not a file name. My fault for not reading the documentation carefully, because it says, right at the top, $p1->parsefile('REC-xml-19980210.xml').

Perhaps not literally the least helpful error message ever. Certainly misleading for anyone unfortunate enough to run into it.

About this Entry

This page contains a single entry by Christian published on May 27, 2005 7:55 AM.

A Real Use for Closures was the previous entry in this blog.

On the Theme of Unexpected Behaviour... is the next entry in this blog.

Find recent content on the main index or look in the archive to find all content.