Anatol: formatierten Text in Textdatei/Mail ausgeben

Hallo zusammen,

ich arbeite gerade an einer Seite, für die es sehr wichtig wäre, Listen als Email zu verschicken (bzw. in einem File zu speichern). Die Listen sollten folgendermaßen formatiert werden:

open(MAIL,">>$URL_offline")

#...weiterer Code

write;
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<< @<
     {
     $Eintrag[0],
     $Eintrag[1],
     $Eintrag[2]
     }
.

in der Eingabeaufforderung erscheint die Liste auch korrekt, also z.B.

Name1                                             email1@uvw.xyz                                7
Name2                                             email2@uvw.xyz                                4
Name3                                             email1@uvw.xyz                                5
usw...

Ich habe es aber bisher nicht geschafft, die Liste mit dieser Formatierung in eine Datei auszugeben.
Eigentlich müßte STDOUT doch einfach durch einen Filehandler MAIL ersetzt werden können.
Bisher ist leider jeder Versuch fehlgeschlagen.
Weiß jemand, wie ich den Filehandler hier richtig verwenden kann? Oder bin ich völlig auf dem Holzweg?
Vielen Dank im voraus,

Anatol

  1. Hallo Anatol,

    Ich habe es aber bisher nicht geschafft, die Liste mit dieser Formatierung in eine Datei auszugeben.
    Eigentlich müßte STDOUT doch einfach durch einen Filehandler MAIL ersetzt werden können.

    Ich glaube kaum, dass dies was mit dem File-Handler zu tun hat. Perl wird brav seine Leerzeichen in die per format erzwungenen Freiraeume in der Datei schreiben. Es kommt aber nicht unwesentlich darauf an, womit man diese Datei hinterher oeffnet bzw. betrachtet.

    viele Gruesse
      Stefan Muenz

  2. Hallo zusammen,

    ich arbeite gerade an einer Seite, für die es sehr wichtig wäre, Listen als Email zu verschicken (bzw. in einem File zu speichern). Die Listen sollten folgendermaßen formatiert werden:

    open(MAIL,">>$URL_offline")

    #...weiterer Code

    write;
    format STDOUT =
    @<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<< @<
         {
         $Eintrag[0],
         $Eintrag[1],
         $Eintrag[2]
         }
    .

    in der Eingabeaufforderung erscheint die Liste auch korrekt, also z.B.

    Name1                                             email1@uvw.xyz                                7
    Name2                                             email2@uvw.xyz                                4
    Name3                                             email1@uvw.xyz                                5
    usw...

    Ich habe es aber bisher nicht geschafft, die Liste mit dieser Formatierung in eine Datei auszugeben.
    Eigentlich müßte STDOUT doch einfach durch einen Filehandler MAIL ersetzt werden können.
    Bisher ist leider jeder Versuch fehlgeschlagen.
    Weiß jemand, wie ich den Filehandler hier richtig verwenden kann? Oder bin ich völlig auf dem Holzweg?
    Vielen Dank im voraus,

    Anatol

    Hallo,

    Dein Fehler liegt imho darin, das Du write nicht das korrekte Dateihandle übergibst. Folgendes sollte funktionieren:

    ###########

    @Eintrag = qw( name1 mail@xyz.de 55);

    format  TESTFORMAT =

    @<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<< @<
    {
    $Eintrag[0],
    $Eintrag[1],
    $Eintrag[2]
    }
    .

    open TESTFORMAT, '>>test.txt' die "$!";

    write (@Eintrag, TESTFORMAT);

    #########

    in test.txt steht dann wie gewünscht:

    name1                      mail@xyz.de                55

    Vielleicht hilft's Dir weiter.

    Gruß, Thorsten

    1. Dein Fehler liegt imho darin, das Du write nicht das korrekte Dateihandle übergibst. Folgendes sollte funktionieren:

      write (@Eintrag, TESTFORMAT);

      Der Teufel steckt mal wieder im Detail, diese Zeile wars.
      Das Problem ist behoben, vielen Dank!

      Anatol