Eurorechner in perl

HI. Vorweg gesagt bin ich noch ein absoluter Anfänger und hab Folgendes PROBLEM:

Ich möchte einen kleinen Euro-Rechner Programmieren(in Perl).
Wie schaffe ich es dass der User über ein HTML-Formular eine Zahl eingeben kann , die dann in meinen Perl"progrämmchen"
verarbeitet (IN dem Fall in EURO umgerechnet) únd an das Formular sofort ausgegeben wird.

Vielen Dank schon im Vorraus !!!

Ich möchte einen kleinen Euro-Rechner Programmieren(in Perl).
Wie schaffe ich es dass der User über ein HTML-Formular eine
Zahl eingeben kann , die dann in meinen Perl"progrämmchen"
verarbeitet (IN dem Fall in EURO umgerechnet) únd an das
Formular sofort ausgegeben wird.

Ohne Garantie (schneller, ungetesteter Hack)

#!/usr/local/bin/perl

use strict;
use CGI ':standard';

my $query = new CGI;
my $betrag = $query-\>param('betrag');

print $query-\>header();
print $query-\>start\_html(-title=\>"Umrechnung DM in Euro");
print "$betrag DM sind ",$betrag / 1.955830, "€ (EUR)";
print $query-\>end\_html;
1;

Abspeichern, ggf. noch die „shebang“ Zeile auf Deinen Server anpassen (#!/usr/local/bin/perl)

Nun machst Du Dir eine HTML-Seite mit einem Formular bestehend aus einem Eingabefeld, das den Namen „betrag“ hat, trägst als „action“ die POST Operation mit dem Namen des Scripts ein und das war’s.

Klaus

Mal eine kleine änderung denn das ergebniss wäre dann wohl eine zahl mit ??? Stellen nach dem Komma !
ALso vielleicht mal die Zeile

print "$betrag DM sind ",$betrag / 1.955830, „€ (EUR)“;

ändern vielleicht in

$euro=$betrag / 1.955830;
printf("$betrag DM sind in Euro %2f", $euro);

In jedem Fall ein nützlicher und sinnreicher Gedanke … *g*
Wenn’ste jetzt noch:

my $euro=$betrag / 1.955830;
printf("$betrag DM sind in Euro %2f", $euro);

oder

printf("$betrag DM sind in Euro %2f", $betrag / 1.955830);

schreibst, gips 'nen Punkt :smile: und ‚use strict‘ ist auch glücklich.

Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hey vielen dank !!!

allerdings hätte ich die Ausgabe , also das Ergebnis gerne im gleichen Formular ausgegeben .

Was muss ich ändern ???

Eine ganze Menge :frowning:
Entweder gibst Du das Formular mit aus:

use strict;
use CGI ':standard';
my $query = new CGI;
my $betrag = $query-\>param('betrag');
print $query-\>header();
print $query-\>start\_html(-title=\>"Umrechnung DM in Euro");

# Eingabeformular udn Ausgabe
print $query-\>startform;
print $query-\>textfield('betrag',$betrag,10,10),' DM
';
printf("$betrag DM sind in Euro %2f
", $betrag / 1.955830);
print $query-\>submit('action','Umrechnen');
print $query-\>end\_form;

print $query-\>end\_html;
1;

oder Du schreibst das Ganze in JavaScript … (Stichwort: OnSubmit)

Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

print $query->end_form;

endform;
heissen

Klaus

print $query->end_form;

endform;
heissen

Klaus

Hey danke !

…allerdings ist es nicht ganz was ich meinte.
Ich wollte die Ausgabe, also das Ergebniss im gleichen Template
wie die Eingabe.
Jetzt bekomme ich eine neue Seite mit dem Ergebniss, einem Button und einem Eingabefeld ohne Funktion.

…allerdings ist es nicht ganz was ich meinte.
Ich wollte die Ausgabe, also das Ergebniss im gleichen
Template
wie die Eingabe.
Jetzt bekomme ich eine neue Seite mit dem Ergebniss, einem
Button und einem Eingabefeld ohne Funktion.

Neue Seite ist richtig, Ohne Funktion sollte nicht sein …

Wenn Du es in der selben Seite haben willst, dann geht es so nicht.
Ausser Du machst die HTML-Seite zu einem Template, läßt es durch das Script ausgeben und als Ausgabe gibt es wieder die Template-Seite samt dem Ergebnis aus.
Alles andere kannst Du nur, wie bereits geschrieben, mit Java Script machen.
Siehe auch http://www.teamone.de/selfhtml/tedc.htm

Klaus

…und genau da liegt mein Problem.
Wie mache ich die Seite zum Template und wie lasse ich es vom Skript ausgeben ???
Ich konnte bis jetzt in keinem Forum einen änlichen Fall finden.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

CGI-Templates
Hallo zusammen,

Ich wollte die Ausgabe, also das Ergebniss im gleichen
Template
wie die Eingabe.

Wie mache ich die Seite zum Template und wie lasse ich es vom
Skript ausgeben ???

Ein Template (=Schablone) ist nix anderes als eine Datei mit
HTML-Code in der Du speziell gekennzeichnete Platzhalter
definiert hast, z.B. %%NAME%%. Wenn nun der User dein Formular
mit einem Namensfeld ausgefüllt zurückschickt, liest Du die
Schablone ein und ersetzt das Feld %%NAME%% mit dem konkreten
Wert. Die so generierte HTML-Datei schickst Du als Antwort
an den User zurück.

Im Artikel „Re^3: [perl,cgi,html]‚url verstecken‘???“
im Archiv findest Du einen Code-Schnippsel zum Einlesen und
Zurücksenden von HTML-Dateien. Zum Ersetzen der von
Dir definierten Platzhalter gibt es den Substitutionsoperator
s/// in Perl (siehe perldoc perlop).

Gruss,
-Andreas.