Login
Newsletter
Werbung

Mo, 7. Juni 1999, 00:00

Perl/CGI-Workshop, Teil 5

Perl/CGI-Workshop, Teil 5.

Datei-E/A

Eine Datei in Perl zu bearbeiten ist wirklich ganz einfach. Wie in allen anderen Programmiersprachen auch muss man in Perl eine Datei erst öffnen, wobei auch angegeben werden muss, wie der Zugriff erfolgen soll (lesend, überschreibend, anhängend, binär...). Dann können entsprechende Operationen erfolgen. Zum Schluss wird die Datei noch geschlossen. Schauen wir uns mal an, wie eine Datei in Perl eingelesen werden kann.

#!/usr/bin/perl
# read.pl -- by W. Jährling
open(DATEI, "< text01"); # für Eingabe öffnen
@inhalt = <DATEI>; # Inhalt in Array einlesen
close(DATEI); # Schließen
# Nun können wir den Dateiinhalt in aller
# Ruhe durchstöbern...

Geöffnet wird eine Datei (man glaubt es kaum) mit open(). Dabei übergeben wir der Subroutine open() als ersten Parameter den Stream, den wir verwenden wollen, und als zweiten eine Zeichenkette, die zuerst den gewünschten Modus bezeichnet (hier das "<" für "Eingabe"), dann ein Leerzeichen und zuletzt den Dateinamen.

Alle Zeilen der Datei werden dann mit einer Anweisung auf einmal eingelesen! In Perl braucht man für so etwas keine Schleife zu codieren. :-)

Den Rest braucht man wohl nicht extra zu kommentieren. Stattdesen schauen wir uns nun an, wie man den Benutzer nach einem Dateinamen fragt und diese Datei dann öffnet. Das Problem dabei ist, dass wir zwei Zeichenketten haben, die wir zusammenfügen müssen ("> " und den Dateinamen). Dies geht leider nicht mit "+", da in Perl nicht zwischen den Typen "Zeichenkette" und "Zahl" unterschieden wird und daher mit "+" eine numerische Addition durchgeführt würde.

Tatsächlich gibt es in Perl für alle String-Operationen weitere Operatoren, da die numerischen Operatoren aus genanntem Grund dafür nicht verwendbar sind. Zeichenketten zusammenhängen kann man mit dem Punkt ("."). Kleines Beispiel:

#!/usr/bin/perl
# write.pl -- by W. Jährling
# Ein *sehr* primitiver Texteditor...
print "Welche Datei? ";
$dateiname = <STDIN>;
print "Text:\n";
@inhalt = <STDIN>;
open(AUSGABE, "> " . $dateiname);
print AUSGABE @inhalt;
close(AUSGABE);

Wenn man den Text eingegeben hat, beendet man diesen "Editor" mit [STRG + D]. Kennen Sie eine Sprache, in der sowas einfacher zu codieren ist? Ich nicht.

Aber warten Sie erst mal ab, bis Sie erfahren, wie einfach man reguläre Ausdrücke in Perl verwenden kann. Ach ja, Perl ist ja so wunderbar...

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung