This technique is similar to what
Joost was describing, but the way I usually get this kind of thing rolling is with Apache's suprisingly flexible
Multiviews option.
Simply throw
Options +MultiViews in your virtualhost, and now Apache goes out of it's way to match the best possible document from the URI.
Which basically means you can pretend your serve.pl is a directory by using a url like
http://.../serve/?page=/perl/index.html
and your HREFs can look like
<a href="?page=this_that_theother">Link!</a>
Or, without
Multiviews, you can simply tell Apache to use your serve.pl as the DirectoryIndex inside a directory and then just pass it your variables in the same way as above.
--twerq