This is a behind-the-scenes explanation of what's going on behind the Pokémon script. Below I'm exposing the Perl code of the four files involved. I'll add more documentation as I get comments.
Pokedex.pm get(), search(), and all().
The first returns a single Pokemon object, the other two return
an array of Pokemon objects.
Pokemon.pm displayas and sortby.
Pokemon objects will be converted to strings. By default,
they are printed as an HTML image tag and the name. This
makes for a colorful display on CGI.
getimage.cgi Pokedex.pm to extract the image
if needed from an SWF file on the pokemon.com site.
testcode.cgi Pokedex.pm and Pokemon.pm, it
exposes two utility functions: show and
count. Show simply prints in HTML format,
while count is just a synonym for scalar.
And again, here's the executable for testcode.cgi