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:
1;
    }
     
     
    my $data = $user{ $uid };
    my ($luid, $group, $name) = split /$trenn/, $data;
     
     
    print <    Ich habe folgende Angaben ueber Sie gefunden:
    Sie haben die numerische UID $luid
    Ihr wirklicher Name ist $name
    und Sie gehoeren zur Gruppe: $group
    MARKE
     
     
    dbmclose(%user)
        or die "Kann Datenbank $dname
             nicht schliessen: $!\n";
     
    Das Schreiben ist etwas aufwändiger, weil wir zuerst alle Angaben erfragen müssen. Wenn die Benutzernummern nicht fortlaufend vergeben werden, müssen wir außerdem sicherstellen, dass wir keine Nummer zweimal eintragen. Hier hilft die bewährte Technik, mit einem Hash Buch zu führen.
 
    Beispiel:
     
    #!/usr/bin/perl -w
    use strict;
     
    # So etwas merkt man sich
    # besser nur an einer Stelle!
    # Das Trennzeichen ist ~~
    my $trenn = '~~';
     
    my $dname = 'userdb';
    my %user;
    dbmopen(%user,$dname,0644)
        or die "Kann Datenbank $dname nicht oeffnen: $!\n";
     
    print "Geben Sie die Benutzer-Kennung ein: ";
    my $uid = ;
    chomp $uid;
     
    print "Geben Sie Ihren Namen ein: ";
    my $name = ;
    chomp $name;
     
    print "Geben Sie Ihre Benutzergruppe ein: ";
    my $group = ;
    chomp $group;
     
    # Laufende Nummer ermitteln
    # Dazu alle vorhandenen Nummern in einem Hash sammeln
    my %nummern;
    my $anzahl=1;
    while (my ($uid, $data) = each %user) {
        my ($no) = split /$trenn/, $data,2;
        ++$nummern{$no};
        ++$anzahl;
    }
     
    # jetzt freie Nummer suchen.
    # Dazu fangen wir mit 1 an und
    # erhoehen so lange, bis keine bekannte
    # Nummer mehr gefunden wird.
    my $no = 1;
    while (exists $nummern{$no}) { ++$no };
     
     
    # Wegschreiben
    $user { $uid } = join $trenn, $no, $group, $name;
     
     
    # Mal wieder ein Hier-Dokument
    print <    Habe Sie mit der laufenden Nummer $no eingetragen!
    Es gibt zurzeit $anzahl Benutzer, Sie eingeschlossen
    MARKE
     
     
    dbmclose(%user)
        or die "Kann Datenbank $dname nicht schliessen: $!\n";
     
     

Weitere Kostenlose Bücher