Hallo Jörk!
$value =~ s/ä/\ä;/g;
$value =~ s/ö/\ö;/g;
$value =~ s/ü/\ü;/g;
$value =~ s/Ä/\Ä;/g;
$value =~ s/Ö/\Ö;/g;
$value =~ s/Ü/\Ü;/g;
$value =~ s/ß/\ß;/g;
Ich fürchte, da hat das Forum bzw. der Browser was verschluckt/konvertiert. Es handelt sich hier um eine Umwandlungsroutine der Umlaute in HTML-Entities, die SELFHTML entnommen ist (tgck.htm#a6). Ich weiß nicht, ob Deine Kurzdarstellung insofern noch anwendbar ist.
while($value =~ /\[^\]+\/)
{
$value =~ s/\([^\]+)\/<I>\1</I>/;
}
while($value =~ /\[^\]+\/)
{
$value =~ s/\([^\]+)\/<B>\1</B>/;
}Ich denke hier kannst Du auch mit dem 'g'-Flag arbeiten:
$value =~ s/\([^\]+)\*/<I>\1</I>/g;
$value =~ s/\([^\]+)\_/<B>\1</B>/g;
Das hatte ich ursprünglich versucht, bei Verschachtelung gab es aber Probleme. Er ist dann nicht in der Reihenfolge vorgegangen wie vorgesehen.
Das hochzählen von i kannst Du durch ++ erledigen. Entweder mit '++ $i' oder '$i ++'.
Wenn Du dieses Konstrukt noch weiterverarbeitest, kommen die Unterschiede zum tragen:
Entweder erst erhöhen und dann den Wert holen oder andersherum.
Für Dich heißt das einfach, daß Du zwei Arbeitschritte quasi einsparen kannst:
$Formular[$i++] = $name;
$Formular[$i++] = $value;
Richtig, da hätte ich als Java-Einsteiger auch drauf kommen können.
Nun zu einem Problem:
Bei CGI-Aufrufen kann und sollte man nicht davon ausgehen, daß die Variablen in einer
bestimmten Reihenfolge angeliefert werden!
Stattdessen lieber ein Hash benutzen. Dies ist ein Array mit Strings als Indizes. Der
Variablenname wird der Index:
$Formular{$name} = $value;
Man beachte die geschweiften Klammern...
Um die Werte später zu nutzen schreibt man dann zum Beispiel:
print $Formular{'Parameter2'};
Aha! Guter Tip, ich hatte mich schon gefragt, wie ich Probleme vermeide, wenn ich irgendwo ein Formularelement einfüge.
print <<"END-OF-HTML";
<HTML><BODY BGCOLOR="#EEEEEE">
<H2>Vorschau</H2><div style="background-color:#000080;margin:0pt;border:none;">
<font size=+0 face="Arial" STYLE="color:white;">
<b>\ ${Formular{Parameter1}} \· ${Formular{Parameter2}}:
<i>${Formular{Parameter3}}</i></b></font>
</DIV><P><FONT FACE="Arial">
${Formular{Parameter4}</FONT><P><HR><P>
<B><A HREF="/cgi-bin/news.cgi?$Daten">Abschicken!</A> - <A HREF="javascript:history.back();">Zurück zur Eingabemaske</A></B>
</BODY></HTML>
END-OF-HTML
Sehr praktisch. Perl scheint genau die Features zu haben, die man braucht.
Vielen Dank für die Hints!
EMÖ