Oha
da hast du aber einiges falsch gemacht und etwas unsinnig dazu
schau dir es einfach mal an wie es eigentlich aussehen sollte
#!C:\Perl\bin\Perl.exe
read(STDIN, $buffer, $ENV{'CONTENT\_LENGTH'});
@pairs = split(/&/, $buffer);
# lesen aller POST werte
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
# Betrag aus FORMULAR eignabe
$betrag = $FORM{'betrag'};
# IST radio button gleich
if ($FORM{'wert'} == "1")
{
$produkt=$betrag\*1.95583;
}
# IST radio button ungleich 1
else
{
$produkt=$betrag\*0.51129;
}
# runden auf 2 stellen
$rund = sprintf ("%.2f",$produkt);
# Ausgabe
print "Content-type: text/html\n\n";
print qq|
UmrechnerIhr Ergebnis: $rund\n
|;
exit;
das exit ist am ende überflüssig, da der Perl prozess im Apache nach ausführung sowieso stirbt
hier nochmal das markierte fehler potenzial, also die Fehler im Script etwas kommentiert
#!C:\Perl\bin\Perl.exe
read(STDIN, $buffer, $ENV{‚CONTENT_LENGTH‘});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(„C“, hex($1))/eg;
$FORM{$name} = $value;
Hier fehlt die Klammer , den erst formulardaten ganz lesen dann verarbeiten
$betrag = „$FORM{‚wert‘}“ ;
hier würde der radio button als betrag genommen
if ($FORM{’ $wert’} = 1)
_$wert ist ne variable und kein element von $FORM und
es wurde eine zuweisung = getan anstatt ein vergleich ==
{
$produkt=( „$FORM{‚betrag‘}“ )*1.95583;
doppelt gemoppelt, $betrag gibt es schon
}
else
{
$produkt=$betrag*0.51129;
}
$rund == sprintf ("%.2f",$produkt);
hier wurde ein verglichen soll aber zuweisung sein
print „Content-type: text/html\n\n“;
print qq|
UmrechnerIhr Ergebnis: $produkt \n";
Hier sollte doch das gerundete Produkt stehen
|;
exit;
}
klammer viel zu spät geschlossen
hoffe das dir das so hilft _