Perl Anfänger
Steffen Müller
- perl
0 $xNeTworKx0 xwolf0 teal0 AndreasN0 Heide0 Michael Schröpl0 Steffen Müller
Hallo
ich da ein Problem.
Ich habe auf mein PC Win98 ein Apache für Win installiert.
(wampp-0.2.1c)
sowie Perl usw.
Nun habe ich mir das Buch Einführung in Perl gekauft von O'Reily.
und nun möchte ich diese Beispiele nach machen.
Diese gehen nicht weil jedes mal der Browser fehler Meldungen gibt.
Beispiel.
nach Buch
#!/usr/bin/per ---> wurde von mir angepaßt
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
nach dem ich diese aufrufe im Browser kommt es zu unterschiedlichen fehlmeldungen.
gebe ich aber ein
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print ( "Hallo Welt!\n");
dann zeigt er es auch an
soweit so gut
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
zeigt er wieder fehler
schreibe ich es aber wieder mit dem Befehl Text/plain
kommt zwar ein
<<Wie Heißen Sie>><<hallo !>>
aber keine Aufforderung wo ich meinen namen schreiben soll.
wer kann mir weiter helfen??
und Frage
Ist es besser alles in Linux zu haben?
Danke
Steffen
Hallo,
ist doch klar. Normalerweise brauchst du den Browser auch nicht dazu. Führe die Bsp. von der Eingabeaufforderung aus. Wenn sie dennoch im Browser ausführen willst, musst du eben einen Header angeben : also zB print "Content-type:text/plain\n\n"; oder print "Content-type:text/html\n\n";
$xNeTworKx.
Hi,
Beispiel.
nach Buch
#!/usr/bin/per ---> wurde von mir angepaßt
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
Versuchs mal so:
#!C:\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
Ist es besser alles in Linux zu haben?
Was fuer eine Frage :))
#!C:\wampp-0.2.1c\perl\bin\perl.exe
my $string = "Ist es besser alles in Linux zu haben?";
$string =~ s/?/./gi;
$string =~ s/Ist es/Es ist/gi;
print $string;
my $ok = <STDIN>;
exit;
Ciao,
Wolfgang
Hallo
ich da ein Problem.
Ich habe auf mein PC Win98 ein Apache für Win installiert.
(wampp-0.2.1c)
sowie Perl usw.
Nun habe ich mir das Buch Einführung in Perl gekauft von O'Reily.
und nun möchte ich diese Beispiele nach machen.
Diese gehen nicht weil jedes mal der Browser fehler Meldungen gibt.
Beispiel.
nach Buch
#!/usr/bin/per ---> wurde von mir angepaßt
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
nach dem ich diese aufrufe im Browser kommt es zu unterschiedlichen fehlmeldungen.
gebe ich aber ein
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print ( "Hallo Welt!\n");
dann zeigt er es auch an
soweit so gut
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
zeigt er wieder fehler
schreibe ich es aber wieder mit dem Befehl Text/plain
kommt zwar ein
<<Wie Heißen Sie>><<hallo !>>
aber keine Aufforderung wo ich meinen namen schreiben soll.
wer kann mir weiter helfen??
und Frage
Ist es besser alles in Linux zu haben?
Danke
Steffen
Linux ist immer besser wenn es um Apache oder ähnliche Webserver zu machen. Wer ist auf die bescheuerte Idee gekommen apache für windows zu programmieren,d as ist doch schwachsinnig.
mfg
teal
Hallo,
[... FOTU entfernt ...]
Linux ist immer besser wenn es um Apache oder ähnliche
Webserver zu machen. Wer ist auf die bescheuerte Idee
gekommen apache für windows zu programmieren,d as ist doch
schwachsinnig.
Gut konditioniert! [dsf 4.23] Pawlow laesst gruessen.
Kannst du eigentlich nicht ueber deinen Tellerrand hinaus
schauen? Warum sollte es nicht auch Faelle geben, in denen ein
Windows zwingende Vorraussetzung ist?
Gruesse,
CK
#!/usr/bin/per ---> wurde von mir angepaßt
brauchst du unter win nicht machen , aber das ist egal.
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
nach dem ich diese aufrufe im Browser kommt es zu unterschiedlichen fehlmeldungen.
gebe ich aber ein
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print ( "Hallo Welt!\n");
Ist klar, denn
print "Content-type: text/plain\n\n"; sagt dem browser erst was da kommt. Ohne die zeile print "Content-type: text/plain\n\n"; weiss der browser nicht was kommt, und zeigt es auch nicht an.
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
zeigt er wieder fehler
schreibe ich es aber wieder mit dem Befehl Text/plain
kommt zwar ein
<<Wie Heißen Sie>><<hallo !>>
aber keine Aufforderung wo ich meinen namen schreiben soll.
wer kann mir weiter helfen??
Auch klar, denn die STDIN eingabe funktioniert nicht auf einer HTML seite weil es da keinen Bezugspunkt gibt. Du müsstest erst ein formular haben, darin dann ein Textfeld , das dann auslesen usw.
Mach mal folgendes:
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
Und führ das ganze mal in der dosbox aus: Also dosbox auf machen, dann in den ordner wechseln , wo das script ist, und dann perl script.pl eingeben dann kommt auch der Text und die eingabeaufforderung.
und Frage
Ist es besser alles in Linux zu haben?
Dazu werden Dir sicher alle ein klares JA sagen, ich hab alles unter WIN ( zuerst 98 jetzt XP ) und komme wunderbar klar. Online ists natürlich eh auf unix servern.
Danke
Kein Thema
Steffen
Andreas
Hallo
ich da ein Problem.
Ich habe auf mein PC Win98 ein Apache für Win installiert.
(wampp-0.2.1c)
sowie Perl usw.
Nun habe ich mir das Buch Einführung in Perl gekauft von O'Reily.
und nun möchte ich diese Beispiele nach machen.
Diese gehen nicht weil jedes mal der Browser fehler Meldungen gibt.
Beispiel.
nach Buch
#!/usr/bin/per ---> wurde von mir angepaßt
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
nach dem ich diese aufrufe im Browser kommt es zu unterschiedlichen fehlmeldungen.
gebe ich aber ein
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print ( "Hallo Welt!\n");
dann zeigt er es auch an
soweit so gut
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
zeigt er wieder fehler
schreibe ich es aber wieder mit dem Befehl Text/plain
kommt zwar ein
<<Wie Heißen Sie>><<hallo !>>
aber keine Aufforderung wo ich meinen namen schreiben soll.
wer kann mir weiter helfen??
und Frage
Ist es besser alles in Linux zu haben?
Danke
Steffen
Hallo Steffen,
hast Du wirklich keine Möglichkeit auf einer Shell zu üben???Macht
mehr Spass....
Bye Heide
Hi Steffen,
Ich habe auf mein PC Win98 ein Apache für Win installiert.
(wampp-0.2.1c)
warum?
Nun habe ich mir das Buch Einführung in Perl gekauft von O'Reily.
und nun möchte ich diese Beispiele nach machen.
Um Perl zu verwenden, brauchst Du keinen Webserver.
Diese gehen nicht weil jedes mal der Browser fehler Meldungen gibt.
Das liegt daran, daß Du an mehreren Fronten gleichzeitig kämpfst.
Ich rate Dir davon ab - lerne erst mal ein bißchen Perl, bevor Du
anfängst, CGI-Anwendungen zu schreiben, Deinen Webserver zu konfigu-
rieren und was Du sonst alles noch tun willst.
#!/usr/bin/per ---> wurde von mir angepaßt
#!\wampp-0.2.1c\perl\bin\perl.exe
print ( "Hallo Welt!\n");
Das ist als Perl-Skript durchaus brauchbar - als CGI-Anwendung aber
nicht.
gebe ich aber ein
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print ( "Hallo Welt!\n");
dann zeigt er es auch an
Weil Du hier die zusätzlichen Anforderungen der CGI-Schnittstelle
erfüllst. Das hat mit Perl nichts zu tun - der Webserver, welcher
die Ausgabe Deines Perl-Skripts ja nicht nur an den Browser liefern,
sondern diese noch um einige (Dir normalerweise unsichbare) Infor-
mationen ergänzen muß, hält Deine Beschreibung des Dokuments ohne
Angabe eines MIME-Type einfach für unzureichend.
schreibe ich nun noch folgendes
#!\wampp-0.2.1c\perl\bin\perl.exe
print "Wie heißen Sie" ;
$name = <STDIN>;
chomp ($name)
print "Hallo $name! \n";
zeigt er wieder fehler
Klar, weil wieder kein MIME-Typ an den Webserver gesendet wurde.
schreibe ich es aber wieder mit dem Befehl Text/plain
kommt zwar ein
<<Wie Heißen Sie>><<hallo !>>
aber keine Aufforderung wo ich meinen namen schreiben soll.
Was erwartest Du denn? Der Browser bekommt von Dir ein text/plain-
Dokument, d. h. etwas, das einen Inhalt, aber keine Struktur hat.
Und er macht damit genau das, was er mit einem reinen Textdokument
machen soll: Er zeigt dessen Inhalt an, ohne ihn auch nur im Geringsten
zu interpretieren.
Wenn Du im Browserfenster statt dessen irgendwelche Eingabeformulare
malen willst, dann mußt Du neben Perl und der CGI-Schnittstelle auch
noch etwas lernen, was der Browser in Deinem Sinne auswertet - nämlich
HTML. Und zusätzlich mußt Du den Inhalt dieses Formulars, der vom
Browser anschließend an den Server gesendet wird, auf diesem Server
wiederum von einem Perl-Skript über die CGI-Schnittstelle annehmen
und analysieren lassen.
In der Summe all dieser Aktionen hast Du dann eine richtige Client-
Server-Anwendung.
wer kann mir weiter helfen??
Am besten ist Dir damit geholfen, Deine Aktivität an dieser Stelle
erst mal zu stoppen und Dir eine andere Vorgehensweise zu raten.
1: Lerne so viel HTML. daß Du einfache Dokumente schreiben kannst.
2. Erweitere Deine HTML-Kenntnisse um die Definition von Formularen.
Hier verlassen wir HTML und wenden uns Perl zu:
3. Schreibe einfache Perl-Skripte, die Ausgaben nach stdout erzeugen.
Halte Dich vorerst von der CGI-Schnittstelle fern; starte die Perl-
Skripte über die DOS-Box.
Übe Perl hinreichend gut; verwende "use strict;" und "perl -w".
Deine Skripte sollten nach diesem Schritt "sauber" sein.
Nun kommt der Webserver ins Spiel:
4. Konfiguriere Deinen Webserver so, daß Du einfache CGI-Skripte
starten kannst. (Diesen Schritt hast Du bereitzs hinter Dir.)
5. Lasse einfache CGI-Skripte laufen. (Diesen ebenfalls.)
Jetzt verbinden wir Perl und den Webserver:
6. Lerne die CGI-Schnittstelle von Perl ("use CGI;" ist für den
Anfänger am sinnvollsten). Analysiere einfache CGI-Parameter;
verwendet "CGI::Carp(fatalsToBrowser)" als Diagnosehilfe.
Und als nächstes verbinden wir Perl und das Eingabeformular:
7. Schreibe ein statisches HTML-Formular, das seine Daten an Dein
CGI-Skript sendet; analysiere die empfangenen Daten und gibt das
Ergebnis aus.
Und wenn Du das alles hinter Dir hast, sind die nächsten Schritte leicht:
8. Schreibe ein CGI-Skript in Perl, welches ein HTML-Dokument nach
stdout schreibt, welches das in 7. verwendete Formular dynamisch
erzeugt, so daß dessen Eingabe wieder an ein (anderes oder auch
gleiches) CGI-Skript zurück gesendet wird.
9. Zapfe irgendwelche externen Quellen an (Dateien, Datenbanken etc.),
um aus ihnen Inhalte zu lesen, welche das Aussehen des in 8. er-
zeugten Formulars ggf. beeinflussen; speichere die von einem
Formular empfangenen Werte in einer solchen externen Quelle.
Mit jedem dieser Schritte "reift" Deine Anwendung. Dabei sind es
nicht mal große Mengen an Quelltext, die jeweils dazu kommen - aber
es sind immer wieder neue Konzepte, Regeln und Techniken, die Du
lernen und beherrschen mußt.
Ist es besser alles in Linux zu haben?
Für Deine Aufgabenstellung ist die Plattform absolut uninteressant.
Win98 ist zwar nicht für alles geeignet, aber für Apache und Perl
reicht es allemal.
Ich selbst verwendet exakt Deine Konfiguration auf meinem PC daheim
und vermisse nichts dabei. Ein guter Editor ist allerdings hilfreich.
Dein Problem ist, daß Du im Moment viel zuviele Technologien gleich-
zeitig einzusetzen versuchst, ohne auch nur eine davon wirklich sicher
zu beherrschen.
Mache einen Schritt nach dem anderen wie oben beschrieben - dann wirst
Du mehr Erfolgserlebnisse haben und in der Summe schneller vorankommen,
als wenn Du mit Gewalt alles auf einmal versuchst.
Viel Spaß beim Lernen - Du hast einiges vor Dir.
Michael
<<<
Hallo Leute!
Danke für Eure Hilfe.
Steffen