Externe TXT-Datei durch Perl-Skript in HTML-Output einbinden
Peter Pan
- cgi
Ich benutze häufig den INCLUDE-Tag um in mehreren SHTML-Seiten wiederkehrende Bausteine (Navigation etc.) in externe TXT-Dateien auszulagern.
Nun habe ich ein Perl-Sktipt, dass per PRINT eine Seite auf dem Bildschirm ausgibt. Um diese im gleichen Layout, wie alle anderen seiten zu formatieren, müsste ich auch hier meine TXT-Dateien einbinden. Nur funktioniert INCLUDE natürlich nicht.
Gibt es eine einfache Möglichkeit, blanken ASCII-Text aus einer externen Datei in eine von einem Perl-Skript erzeugt HTML-Seite einzubinde?
Joho,
Gibt es eine einfache Möglichkeit, blanken ASCII-Text aus einer externen Datei in eine von
einem Perl-Skript erzeugt HTML-Seite einzubinde?
perldoc -f open, perldoc perlopentut
open DAT, '<file.txt' or die $!;
print while <DAT>;
close DAT;
gruesse,
CK
Joho,
Gibt es eine einfache Möglichkeit, blanken ASCII-Text aus einer externen Datei in eine von
einem Perl-Skript erzeugt HTML-Seite einzubinde?
perldoc -f open, perldoc perlopentut
open DAT, '<file.txt' or die $!;
print while <DAT>;
close DAT;
gruesse,
CK
Das scheint zu klappen. Danke.
Allerdings hatte ich zuerst auch die Zeile "perldoc -f open, perldoc perlopentut" mit in mein Skript kopiert. Das war wohl falsch, denn als ich sie wieder rausgenommen habe, hat es funktioniert.
Da meine TXT-Datei nicht im CGI-Verzeichnis liegt, bin ich erstaunt, dass sie trotzdem gefunden wird. Wie dass?
hi!
perldoc -f open, perldoc perlopentut
Allerdings hatte ich zuerst auch die Zeile "perldoc -f open, perldoc
perlopentut" mit in mein Skript kopiert. Das war wohl falsch, denn als
ich sie wieder rausgenommen habe, hat es funktioniert.
Das ist aber nicht Christians Schuld, sondern deine, dass du nicht mal in
der Lage bist, die Dokumentation zu bedienen, die zu der von dir verwendeten
Software gehoert.
open DAT, '<file.txt' or die $!;
print while <DAT>;
close DAT;
Da meine TXT-Datei nicht im CGI-Verzeichnis liegt, bin ich erstaunt,
dass sie trotzdem gefunden wird. Wie dass?
Das aktuelle Verzeichnis ist bei CGI-Anwendungen nicht definiert. Alles
weitere koennten wir nur raten, weil du uns keine weiteren Angaben zu deiner
System-Umgebung gemacht hast.
bye, Frank!
Hallo Frank!
Das ist aber nicht Christians Schuld, sondern deine, dass du nicht mal in
der Lage bist, die Dokumentation zu bedienen, die zu der von dir verwendeten
Software gehoert.
Sorry, Frank, wenn ich diese Aussage als arrogant bezeichne. Wenn man Perl heruntergeladen und installiert hat, wo steht, dass man in der Kommandozeile perldoc -... eingeben muss, um die entsprechenden Seiten aus der Documentation zu lesen? Woher soll jemand, der mit Perl anfangen will, das dann wissen?
Ich konnte lange Zeit mit sochen Hinweisen auf perldoc nichts anfangen, ebenso wenig wie scheinbar hier Peter Pan.
Ausserdem noch folgendes: Ich habe auf dem Laptop eine ältere Perlversion, da kann ich z.B. perldoc -f open in der DOS-Box eingeben und bekomme den Text angezeigt. In der Version, die ich hier auf dem PC habe, und die neuer ist (von ActiveState), funktioniert das nicht.
Dort ist zum ersten Mal (im Vergleich zu früheren Versionen) auch eine "ActivePerl.chm" (CHM-Hilfedatei, Windows-Hife-Format) vorhanden. Da kann man zwar auch suchen, und perlopentut habe ich zum Beispiel gefunden, perlfunc/open nach längerem Suchen auch.
Wenn jetzt einer aber nicht weiß, dass -f für perlfunc steht, wie soll er denn mit dieser neuen Version nach "open" suchen?
Patrick
Wenn man Perl heruntergeladen und installiert hat, wo steht,
dass man in der Kommandozeile perldoc -... eingeben muss, um
die entsprechenden Seiten aus der Documentation zu lesen?
Ich konnte lange Zeit mit sochen Hinweisen auf perldoc nichts
anfangen, ebenso wenig wie scheinbar hier Peter Pan.
hi!
Sorry, Frank, wenn ich diese Aussage als arrogant bezeichne.
Was soll daran arrogant sein, wenn ich vorraussetze, dass die Leute
die Dokumentation lesen bzw. dort zuerst nachschlagen, wenn sie
irgendein beliebiges Programm -- zb. Perl -- verwenden wollen?
Beim Verkauf von Videorekordern geht man ja auch davon aus, dass die
Leute den zuhause mithilfe der Anleitung selbst an den Fernseher
anschließen. Warum sollte das bei Software anders sein?
Ausserdem noch folgendes: Ich habe auf dem Laptop eine ältere
Perlversion, da kann ich z.B. perldoc -f open in der DOS-Box
eingeben und bekomme den Text angezeigt. In der Version, die ich
hier auf dem PC habe, und die neuer ist (von ActiveState),
funktioniert das nicht.
Kann ich nicht nachvollziehen: ich habe hier ein ActivePerl von Ende
Oktober, da funktioniert es.
Wenn jetzt einer aber nicht weiß, dass -f für perlfunc steht, wie
soll er denn mit dieser neuen Version nach "open" suchen?
Er gibt als Suchbegriff "open" ein. Bereits das zweite Ergebnis ist
die perlfunc-Manpage. die erste ist perlopentut, also noch passender.
bye, Frank!
Hallo Frank!
Was soll daran arrogant sein, wenn ich vorraussetze, dass die Leute
die Dokumentation lesen bzw. dort zuerst nachschlagen, wenn sie
irgendein beliebiges Programm -- zb. Perl -- verwenden wollen?
An der Voraussetzung an sich ist nichts auszusetzen. Nur: mit "perldoc -f open" als einziger Hinweis wissen die Wenigsten, nach dem sie Perl zum ersten Mal installiert haben, was es auf sich hat. Peter lieferte doch den Beweis: Er dachte, diese Zeichenfolge gehöre irgendwo ins Script rein!
Kann ich nicht nachvollziehen: ich habe hier ein ActivePerl von Ende
Oktober, da funktioniert es.
Irgendwie verstehe ich das auch nicht recht... Ich habe Perl von der Installtionsdatei "ActivePerl-5.6.1.630-MSWin32-x86.msi", die ich am 20.11. gedownloadet habe, installiert. Und hier die Screenshots:
<img src="http://www.atomic-eggs.com/temp/perldocfopen.gif" border=0 alt="">
Nullo Erfolgo! Auf dem Laptop mit der älteren Perl-Version geht es!
Andererseits geht das hier:
<img src="http://www.atomic-eggs.com/temp/perldocfopen.gif" border=0 alt="">
aber C:\Perl\bin\perldoc.bat -f PerlFunc führt wiederum zu nichts.
Patrick
Re!
Hier lesen:
Andererseits geht das hier:
<img src="http://www.atomic-eggs.com/temp/nurperldoc.gif" border=0 alt="">
aber C:\Perl\bin\perldoc.bat -f PerlFunc führt wiederum zu nichts.
Patrick