in reply to Alternatives to PerlTransHandler?

Why have an extension at all? Extensions in URL's are a holdover from our filesystem-based web concepts.. There's no technical requirement that they be there.

By enabling content negotiation (MultiViews via mod_negotiation) in Apache, you could reference skinned.cgi like this:

http://foo.bar.bah/~stesla/skinned

This would automatically select .html, .cgi, or whatever "best" extension can handle this URI. In most cases there'll only be one, but it also allows you to go multi-language or multi-content-type if you wanted to.

Plus, if you change technologies at a later date and instead to go with, say, .shtml instead of .cgi, or back your content with XML, you don't have to go through and change all of your URL's.

Lastly, even if you don't go with a trick like this, mod_rewrite can be used to re-write your "pretty" URI's with less-pretty ones that are more reflective of the true name of the resource.