mich stört aber die Vermischung von Verarbeitung und Ausgabe, was mich grundsätzlich auch an (den meisten Lösungen von) php stört. Daher halte ich alle auszugebenden Fragmente als HTML-Templates vor, die der Designer ohne Programmierkenntnisse schnell ändern kann.
Es ist kein Problem, die Ausgaben in meinem Beispiel mit einer Template-Engine zu realisieren, ich persönlich ziehe da HTML::Template vor.
Übrigens, wenn du unbedingt dein %F brauchst, ist das mit dem CGI-Modul ein Zweizeiler:
my %F;
$F{$_} = $cgi->param($_) foreach($cgi->param);
Na, besser? ;)
Siechfred