Thread hash sortieren (5 answers)
Opened by Froschpopo at 2008-03-27 22:59

Froschpopo
 2008-03-27 22:59
#107569 #107569
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich nutze popup_menu() von CGI zum erzeugen eines <select>-Tags.

Folgendes Problem:
Ich möchte ein Popup-Menü erzeugen, welches Altergruppen anzeigt.

Also sowas wie:
Code: (dl )
1
2
3
4
5
6
7
<select name="alter">
<option value="16">16 Jahre</option>
<option value="17">17 Jahre</option>
<option value="18">18 Jahre</option>
<option value="19">19 Jahre</option>
... usw
</select>

Das mache ich dann so:
Code: (dl )
1
2
3
4
5
my $cgi = new CGI;
my %fields = ();
$fields{$_} = $_ . ' Jahre' for 14..60;

print $cgi->popup_menu('alter', \%fields);

Das doofe ist, dass der Hash total unsortiert herauskommt (was ja normal bei Perl ist).
Wie könnte man das nun aufsteigend sortieren?

Bei der sort()-FUnktion bekomme ich ja leider nur ein Array und müsste dann auf "Jahre" verzichten da ich dies nicht im value-Attribut haben will!
Die einzige Möglichkeit sehe ich momentan nur noch darin, das popup_menu() später durch einen regex zu jagen der dann immer "</o" durch " Jahre</o" ersetzt.

View full thread hash sortieren