in reply to Seeking better solution to selecting from list of domains (was: Seeking a jewel....)

The easiest way would be to create a table in your database that contains your entry. It is fairly easy to write a front end for updating this and to not worry about locking and such.

Including a hash file is probably a bad idea, but if you want to do that, use a combination of Data::Dumper to write out the hash and Data::Undumper to load it back in. Data::Undumper comes with some cgi package and I recommend using it as it does the safe evaling for you.

Also, if you were to use Apache::Pagekit, you could create the data in XML and create the code as component :)

In order to reduce changes in your code ($urls .= 'weightwatchers.com' if $fat;), I recommend doing it this way:

my $urls; # all the urls my %keywords = build_keyword_hash(%config_data); # get the list of keywords my @keywords = $cgi->param('keywords') foreach my $keyword (@keywords) { $urls .= $keywords{$keyword} if(exists($keyworlds{$keyword})); }
cheers.
(sorry about the overuse of 'keywords' for variable names)