I had a flat file that looked like "country:region" This is how I made a pull down with all of those countries -- it's old and a little ugly, but it works and I didn't use anything special to build it. (I was limited to the mods I could use when I wrote this way back when).
sub generateAllCountries{
my (@all_countries, $HTML_String);
open(FILE, "<countries.data") or die "I cannot read the file";
while(<FILE>){
if(/(.*):(.*)/i) {
push @all_countries, $1;
}
}
my $HTML_String = "\t" . '<select name = "country">
<option name="country" value="">-- Select a Country --</option
+>';
for(my $i = 0; $i < $#all_countries; $i++){
$HTML_String .= "\t\t" . '<option value = "' . $all_countries
+[$i] . '">' . $all_countries[$i] . "</option>\n";
}
$HTML_String .= "\t</select>";
return $HTML_String;
} # sub generateAllCountries