klaus: gemischte / vermischte CGI-Daten und so weiter

Beitrag lesen

Hallo Stephan,

Weis jemand woran das liegt?

In Hashes, und das ist das, was Du verwendest, greifst Du nicht wie bei Arrays über eine fortlaufenden Nummer (naja, könntest Du grundsätzlioch zwar, mach aber wenig sinn) auf einzelne Werte zu.
Die interne Reihenfolge der Schlüssel, welche Du mit keys(%MyHash) bekommst, ist per Definition quasi zufällig.

Und wie man das beheben kann ?

Gar nicht, warum auch. Wenn Du unbedingt die Reihenfolge erhalten willst, dann speichere die Schlüssel zusätzlich in einem Array.

also
foreach $paar (@paare)
{
   ($schluessel, $wert) = split(/=/, $paar);
   $wert =~ tr/+/ /;
   $wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",   hex($1))/eg;
   # Hash mit Daten erstellen
   $FORM{$schluessel} = $wert;
   push @Schluessel, $schluessel
   }
}

Wenn Du nun auf die Werte in der übergebenen Reihenfolge zugreifen willst, dann eben so

foreach my $schluessel (@Schluessel)
   {
   &machwas($FORM{$schluessel};
   }

Die Sinnhaftigkeit sei jetzt mal dahingestellt.

BTW:
1.) CGI ist _nicht_ Perl.
Das wurde hier schon mehrmals erwäht. CGI ist ein Übertragungsmechanismus, Perl eine Programmiersprache
mit Perl kann man CGI-Scripts erstellen, das ist wahr. Aber... man kann auch wesentlich mehr damit.
Für die Bearbeitung von CGI-Requests im WWW wird oft Perl verwendet, das ist wahr. Aber... Grundsätzlich kann man das mit jeder Programmiersprache (PHP,C, sh, VB, Pascal, Cobol ;-) (ehrlich, hab ich auch schon gesehen) )

2.) Warum immer eigene Parser für CGI-Parameter?
Es ist sicher besser, vielfach ausgetestete Routinen zu verwenden, als alles immer wieder neu zu erfinden !!!
Bitte verwende doch CGI.pm. Das ist besser für Dich und Deinem Provider und den Leuten, welche Deine Seiten besuchen.

3.) Verinnerlich Dir die Konzepte von Perl und versuiche nicht irgendwelche Krücken von anderen Programmiersprachen nachzubilden.
Hashes ist ein mächtiges Werkzeug, welches in vielen anderen Sprachen einfach nicht vorhanden ist.
Ich habe es bisher selten als NAchteil empfunden, daß die keys der Hashes keiner erkennbaren Ordnung folgen.
(Und wenn, dann auch zu einer Zeit, als ich gerade mit Perl begonnen habe, und irgendwas aus C oder so nachbauen wollte)

Grüße
   Klaus