I like the "switch" idea quite a bit, myself. Here's something you might do right off the bat: those lc "misc" calls are pointless (the string IS in lower case, that's the part you control). So, at the top, something like my $location = lc $query->param('place) or 'links'; # or a sensible default
Which converts the value you *can't* control to lowercase . One nice thing about the "switch" idea is that you can fall through to a default if the value of the parameter isn't valid.
Philosophy can be made out of anything. Or less -- Jerry A. Fodor