++! another neat-o trick from a master of xml
one little thing: you might consider inverting the logic in your pattern match. i think it helps readability and maintainability a bit.
## turn (unless id contains one or more digits only)
return qq(bad id "$id"\n) unless $id =~ /^\d+$/;
## into (if id contains non-digits)
return qq(bad id "$id"\n) if $id =~ /\D/;
~Particle *accelerates*
|