perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




12.02.2012 / 03:46

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragPerl Scripts ausführen
Seitenanfang

Hallo!

Ich bin gerade dabei mich mit Perl eingehender zu beschäftigen. Leider bin ich dabei schon am Anfang auf Probleme gestoßen.

In der ersten Zeile gebe ich den Pfad zu Perl an, soweit ok.

Wenn ich danach aber gleich schreibe zB.

 print"Das ist ein Test"; 

und das Script auf meinem lokalen Testserver via http://localhost/cgi-bin/test.pl im Browser aufrufe, bekomme ich einen Error 500.

Ich muss zuerst

print"Content-type:text/html";

eingeben, bevor es geht. Aber da gibts dann noch andere Programme, bei denen der Benutzer zuerst was eingeben soll, einfach auf der tastatur, dann soll die Eingabe verwarbeitet werden. Das funktioniert dann überhaupt nicht, wenn es als HTML angesehen wird.

Was gibt es denn noch für Möglichkeiten, Perl auszuführen? Das Buch, was ich mir gekauft habe, ist da sehr schweigsam zu diesem Thema. Ich komm da leider nicht ganz mit. Wie kann ich Perl noch anderst als über cgi-bin ausführen?

Vielen, vielen Dank für eure Hilfe schon mal im Voraus.

Grüße, Nash

Datum: 18.11.2004-15:44

Beitragre: Perl Scripts ausführen
Seitenanfang
wenn du script über den browser ausführen willst, dann gibt es keine signifikant andere möglichkeit, schau dir dazu CGI.pm an (http://search.cpan.org/~lds/CGI.pm-3.05/CGI.pm). aber du kannst perl natürlich auch "einfach so" ausführen. öffne eine command-shell (windows xp: start -> ausführen -> cmd, win 98: start -> ausführen -> command), wechsel in das verzeichnis, wo dein script liegt und gib
perl script.pl
ein. falls das nicht geht, musst du den pfad zu perl\bin\ zu %PATH% (umgebungsvariable) hinzufügen.

Datum: 18.11.2004-18:29

Beitragre: Perl Scripts ausführen
Seitenanfang
Hallo!

Danke für deine Antwort. Nun ist das schon mal geklärt wie man die Scripte ausführen kann.

Nun bleibt noch die Frage, ob das normal ist, dass ich immer zuerst

print"Content-type:text/html";
eingeben muss, wenn ich was anderes als einen Error 500 sehen will.

Wenn mir da auch noch jemand helfen könnte, wäre ich sehr dankbar.

Grüße, Nash

Datum: 18.11.2004-18:39

Beitragre: Perl Scripts ausführen
Seitenanfang
japp, das ist auch normal (übrigens: die lesbarkeit wird erhöht, finde ich, wenn du ein leerzeichen zwischen print und dem string ließest), denn http basiert darauf, dass man einen header zurückliefert, der den content beschreibt. fragst du nun zum beispiel den server an und der findet die datei nicht, gibt er dir einen
Status: 404 Not Found
zurück und eventuell noch einen content-type und ein dokument.
Nun wird, wenn du eine ausgabe machst und den status nicht explizit angibst, immer 200 OK gesetzt, den content-type (=anweisung an den browser, was er damit tun soll, text/html stellt er als html dar, image/jpeg zB würde er versuchen als bild darzustellen) musst du aber immer noch selbst setzen, um den browser zu informieren, was für inhalt nun kommt.
der http-standard sieht vor, dass man zwischen header (=infos für den client) und body (=eigentliches dokument) eine leerzeile lässt, daher die zwei \n.

wenn du nun keinen content-type übermittelst, merkt das der server und sieht, dass das falsch ist und nicht den spezifikationen entspricht und spuckt daher einen 500 Internal Server Error aus.

sag bescheid, wenn noch fragen da sind.

Datum: 18.11.2004-22:11

Beitragre: Perl Scripts ausführen
Seitenanfang
Na wenn das normal ist, dann ists ok. Danke für deine Super Erklärungen und die schnelle Hilfe, vielen Dank!

Soweit wäre alles geklärt. *freu*

Danke nochmals und Grüße, Nash

Datum: 19.11.2004-10:15

Beitragre: Perl Scripts ausführen
Seitenanfang

Hallo!

Jetzt habe ich ein bißchen weitergemacht mit Perl und bin nun zu folgendem Programm gekommem:

print "Bitte geben Sie die erste Zahl ein ";
chomp($eins = <STDIN>);

print "Bitte geben Sie die zweite Zahl ein ";
chomp($zwei = <STDIN>);

$ergebnis = $eins * $zwei;
print "Das Ergebnis ist $ergebnis";

Wie GENAU führe ich das jetzt aus? Über cgi-bin gehts nicht, da wird einfach alles per print ausgegeben, ist klar. Aber ich habe es nun über start-ausführen versucht, das hat aber nicht hingehauen. Ich muss sagen, dass ich den Teil aber auch noch nicht ganz verstanden habe. Wäre super, wenn sich nochmal jemand die Zeit nehmen könnte und mir das Schritt für Schritt erklären könnte.

Ich wäre sehr dankbar für jede Hilfe.

Grüße, Nash

Datum: 25.11.2004-11:51

Beitragre: Perl Scripts ausführen
Seitenanfang
was meinst du mit "Aber ich habe es nun über start-ausführen versucht, das hat aber nicht hingehauen"?
so liest du von der commandline, wenn du das per CGI ausführen willst, musst du die parameter in ein formular geben und dann auslesen. mal dein beispiel als cgi:

#!/usr/bin/perl
use strict;
use CGI;

my $CGI = new CGI;
my $params = $CGI->Vars;

print "Content-Type: text/html\n\n";
print "<html><body>";
if(defined $$params{'zahl1'} && defined $$params{'zahl2'})
{
my $ergebnis = $$params{'zahl1'} * $$params{'zahl2'};
print "<br>Das Ergebnis ist $ergebnis</b>";
}
print qq~
Bitte geben Sie zwei zahlen ein, die multipliziert werden sollen:
<form action="test.pl" method="get">
<input type="text" name="zahl1"> * <input type="text" name="zahl2">
<input type="submit" value="berechne">
</form>
</body></html>
~;

Datum: 25.11.2004-12:35

-






-
-