Sandra: Auslesen eines wertes

Hi
Könnt ihr mir helfen?
Ich habe eine Datei,in die von einem Anmelde Script Daten geschrieben werden.
In der Datei sieht das so aus:
$name:$pass
$vname:$nname:$pass1:$email:$temp

So und ich möchte,für ein Email Script die emailadresse aus der Datei auslesen.
Das soll so gehen:
An das Email Script wird $name und $pass geschickt,das Script such die Daten in der Daten und dann soll es die Adresse als empfänger auslesen.
Cu
Sandra

  1. Hallo Sandra,

    Eine möglichkeit, die Datei zu lesen und in eine Datenstruktur zu speichern:

    my $data = {}; #Ein Hash für die Daten.
    open(IN,"datei.dat") #Datei öffnen
    while(<IN>) { #Datei zeilenweise lesen
      chomp; #Zeilenumbruch am Zeilenende entfernen
      my @zeile = split(':'); #Zeile zerlegen
      $name = $zeile[0];
      $data->{$name} = {PASS=>$zeile[1]}; #In Daten einen neuen Eintrag für $name anlegen und das Passwort darin speichern.
      $_ = <IN>; #nächste Zeile lesen
      chomp;
      @zeile = split(':');
      #Die Werte der 2. Zeile auch noch speichern.
      $data->{$name}->{VNAME} = $zeile[0];
      $data->{$name}->{NNAME} = $zeile[1];
      $data->{$name}->{PASS1} = $zeile[2];
      $data->{$name}->{EMAIL} = $zeile[3];
      $data->{$name}->{TEMP} = $zeile[4];
    }
    close(IN); #Datei schließen

    Jetzt hast Du eine Datenstruktur und kannst bequem auf alle Daten zugreifen.
    Für die E-Mailaddresse also:
    $data->{Fritz}->{EMAIL}

    Viel Spaß bei verstehen ;-)

    Grüße

    Daniel

    1. Hi
      Leider muss ich sagen es geht nicht.
      Auszug der ErrorLog:
      syntax error at mail.pl line 13, near ") {"
      syntax error at mail.pl line 27, near "}"
      Execution of mail.pl aborted due to compilation errors.
      Die 13 ist while(<IN>) { #Datei zeilenweise lesen und die 27 ist }.

      Sorry habe vergessen zusagen das,dass Mail Script CGI ist.
      Cu

      1. Hallo Sandra,

        in der open-Zeile fehlt ein ";".

        open(IN,"datei.dat"); #Datei öffnen

        Gruß

        Eidgenosse

    2. Hi
      Danke geht (was so ein ; alles ausmacht).
      Nur ein kleines prob:
      in dem Mail Script steht in einer zeile:
      $to = '@.'; #Geben sie hier die email adresse ein
      so wie muss ich da $data->{Fritz}->{EMAIL} anpassen?
      Das Script wird so aufgerufen:
      mail.pl?name=Sandra&pass=ngji
      jetzt muss in $to die email adreese von Sandra drin stehen.
      Kann mir jemand ein Beispiel geben?
      Cu

      1. Hallo Sandra,

        Dein Problem ist das einlesen der Parameter?
        Dazu verwendest Du am besten CGI.pm.
        Beschreibung in Selfhtml: http://selfhtml.teamone.de/cgiperl/module/cgi.htm
        Moduldokumentation:http://www.perldoc.com/perl5.8.0/lib/CGI.html

        Grüße

        Daniel