Hallo,

ich stelle grade ein CGI-Skript auf CGI.pm um und habe einige Probleme mit dem Übertragen von Formulardaten per POST und dem Erhalt des Query.

Code:
#!/opt/lampp/bin/perl -w
use CGI::Carp qw(fatalsToBrowser);
use strict;
use CGI qw/:standard -newstyle_urls/;

...

print header,start_html(-title=>'test',-encoding=>{'utf-8'},-lang=>'de-DE'), 
 $linkleiste, '<div class="scrollend">',

 start_form(-method=>'POST', 
 -action=>"$myself?aktion=lesen;session=$query->{'key'};artikel=$artikel{'id'};"
  );

....

print end_form,'</div>',end_html;
Mal abgesehen davon dass der ausgegebene HTML-Code bei encodig folgendes enthält:
<meta http-equiv="Content-Type" content="text/html; charset=HASH(0x81fe920)" />
Das habe ich erstmal ignoriert, doch wie man sehen kann brauche ich für die Information was das Skript machen soll die Queryanteile 'aktion' und den Sessionkey.
Die Standardeinstellung von start_form ist das Übermitteln per GET-Methode. Das überschreibt aber neben anderen Nachteilen auch meinen Query, sodass ich dann diese Informationen verliere.
Stelle ich aber per -method=>'POST' das Formular auf Post um, und gebe per -action auch noch den Link+Query weiter erscheint das korrekt im HTML-Code
<form method="post" action="http://molaf.ath.cx/cgi-bin/molaf-cms/molaf-cms.cgi?aktion=lesen;session=putaTIXPKrqybhGlSXRr; artikel=aaaaaa;" enctype="multipart/form-data">
Nur bei Absenden der Daten landen die Formulardaten im Querystring und überschreiben sogar den von mir explizit gesetzten Query.

Leider steht weiter keine Dokumentation über das Verhalten zu start_form in der Dokumentation von CGI.

Habe ich einen Bug gefunden oder einfach nur etwas falsch gemacht?