Bücher online kostenlos Kostenlos Online Lesen
Perl Programmierung - Grundkurs

Perl Programmierung - Grundkurs

Titel: Perl Programmierung - Grundkurs Kostenlos Bücher Online Lesen
Autoren: Barbara Hohensee
Vom Netzwerk:
$!\n";
     
     

Kopieren
     
    Um eine Datei zu kopieren öffnen wir zwei Dateien, eine zum Lesen und eine zum Schreiben. Wir lesen aus der Quelle Zeile für Zeile und schreiben in das Ziel. Dabei prüfen wir bei jedem Schritt sorgfältig. ob ein Fehler aufgetreten ist.
     
    use strict;
    my $quelle ="original.txt";
    my $ziel = ">ziel.txt";
    open QUELLE, $quelle
        or die "Kann die Datei $quelle nicht oeffnen: $!\n";
    open AUSGABE, $ziel
        or die "Kann die Datei $ziel nicht oeffnen: $!\n";
     
    while(my $zeile = ) {
        print AUSGABE $zeile
            or die "Kann die Datei $ziel nicht schreiben: $!\n";
    }
    close AUSGABE;
    close QUELLE
        or die "Kann in die Datei $ziel nicht schreiben: $!\n";
     
     
     

Sie können auch eine Liste benutzen, um so eine ganze Textdatei auf einmal zu lesen. Das ist sinnvoll, wenn die Eingabe und die Ausgabe nacheinander erfolgen sollen.
     
    use strict;
    my $quelle ="original.txt";
    my $ziel = ">ziel.txt";
    open QUELLE, $quelle
    my @zeilen = ;                            # Alle Zeilen einlesen
    close QUELL;
     
    # Hier haben wir jetzt alle Zeilen in einer Liste,
    # $zeilen[0] ist die erste Zeile
     
    open AUSGABE, $ziel;
    print AUSGABE @zeilen;                             # Alle Zeilen werden geschrieben
    close AUSGABE;
     
     
    In diesem Beispiel wurde die Fehlerbehandlung weggelassen, diese können Sie noch einfügen.
    Ausserdem können Sie die Zeilenenden mit der Funktion chomp entfernen, die auch eine Liste als Parameter aktzeptiert:
     
    chomp(@liste);
     

Alles in einen String kopieren
     
    Um den ganzen Inhalt einer Textdatei in einen String zu kopieren, also in eine skalare Variable, greift man auf den Trick zurück, dass man als Ende einer Zeile gar nichts aktzeptiert.
    Dazu wird erst die Variable $/ auf undef gesetzt.
     
    open QELLE, $quelle;
    $/ = undef;
    my $txt = ;                             # Ganze Datei einlesen
     
    Jeztz kann man zum Beispiel in der  ganzen Datei nach Wörtern suchen:
     
    my $suchHallo = ($txt =~ s/Hallo//);
     
    Der Operator =~ weist Perl an, den Inhalt der Variablen $string ($txt) für den Vergleich zu benutzen.
     
     

binmode
     
    Sobald Sie eine nicht ASCII-Datei verarbeiten wollen, nüssen, müssen Sie dem Perl-Interpreter kenntlich machen, dass es sich bei der folgenden Datei um eine binäre Datei handelt.
     
    open DATEI, "name.doc";
    binmode(DATEI);
     
     
    An beliebige Stellen in der Datei springen
     
    Zuständig ist hierfür die Funktion seek (Im Modul Seekable oder POSIX enthalten).
    Es müssen drei Dinge angegeben werden:
    1.         Das Datei-Handle, das Sie bearbeiten wollen
    2.        Die Distanz, die Sie weiter wollen
    3.        Den Startpunkt, von dem aus die Distanz zurückgelegt wird
     
    Die Distanz wird in der Anzahl Bytes gemessen, die das Ziel vom Startpunkt entfernt ist. Der Startpunkt wird durch eine von drei Möglichekeiten definiert, die in der Tabelle aufgelistet sind:
     
Index
Symb. Name
Beschreibung
 
 
 
0
SEEK_SET
Position wird vom Anfang der Datei gezählt. Das erste Byte hat die Nummer 0
1
SEEK_CUR
Positition wird ab der aktuellen Position gezählt. Die aktuelle Position hat die Nummer 0
2
SEEK_END
Position wird vom Ende der Datei gezählt. Ist normalerweise negativ. Die letzte Position hat die Nummer -1
     

Es wird erst eine Datei mit dem Inhalt 123456789 angelegt, in der dann mit Hilfe von Positionen gesucht wird.
     
    my $name = seek.txt;
    open DATEI, ">$name" or die $!;
    print DATEI 123456789;
    close DATEI;
    open DATEI, "$name" or die;
     
    seek DATEI, 0, 0 or die $!;              # 1
    print my $ch = getc DATEI, "\n";
     
    seek DATEI, 5, 0 or die $!;               # 6
    print my $ch = getc DATEI, "\n";
     
    seek DATEI, 0, 1 or die $!;               # 7
    print my $ch = getc DATEI, "\n";
     
    seek DATEI, 1, 1 or die $!;               # 9
    print my $ch = getc DATEI, "\n";
     
    seek DATEI, -1, 2 or die $!;               # 9
    print my $ch = getc DATEI, "\n";
    close DATEI;
     
     
    Mit getc kann ein einzelnes Zeichen aus einer Datei gelesen werden.
     
     

Hashes speichern
     
    Ein Hash kann zunächst als Liste gespeichert werden.
    Eine andere Möglichkeit besteht darin, den Hash mit einer Datei zu verbinden. In der Perl-Literatur spricht man in dem Fall von Datenbank.
     
    Es werden für diesen Zweck

Weitere Kostenlose Bücher