Bernhard Peissl: Multiline-Text mit string terminator

Ich habe da ein Problem das mich nicht erst heute zum ersten mal ärgert:

Es gibt ja mit PERL die Möglichkeit mit mehrzeiligen Text auf dem Schirm auszugeben, und zwar ohne jedesmal <print "huhu";> zu schreiben. Ich habe folgendes probiert:

// print <<END_of_me;
// Content-type: text/html
//
// <html>
// <head>
// ...
// </html>
//
// END_of_me

Der PERL-Interpreter schreibt dann immer <Can't find string terminator "END_of_me" anywhere before EOF at adminKurseStep1.pl line 5>

Ist da was falsch, hab ich was vergessen, oder wieso geht das nicht?
Gibts ev. auch noch ne andere Möglichkeit.

Es sind ca. 200 Zeilen die ausgegeben werden sollen, deshalb habe ich diesen Ansatz gewählt !

Liebe Grüsse
Bernhard

  1. Hallo Bernhard!

    // print <<END_of_me;
    // Content-type: text/html
    //
    // <html>
    // <head>
    // ...
    // </html>
    //     ***** Diese Leezeile enfernen!
    // END_of_me

    Probiere mal die Leerzeile zu entfernen.
    In meinen Scripten nutze ich sowas auch und es funzt eigentlich immer.

    Bis danndann
    PAF (patrickausfrankfurt)

    <img src="/selfaktuell/extras/selfcomm.jpg" alt=""> http://www.atomic-eggs.com/selfspezial/guests/advguest.cgi?view

    1. Hi,

      Probiere mal die Leerzeile zu entfernen.

      Im Gegenteil, die letzte Leerzeile muß unter allen Umständen dahin. Zwar in Unix-Style, aber sie _muß_
      dorthin.

      Den Fehler habe ich überigens immer, wenn ich den letzten Umbruch weglasse ;)

      mfg
      CK1

      P.S.:   (der/die Betroffene weiß, was gemeint ist *g*)

      1. Hallo Christian!

        Probiere mal die Leerzeile zu entfernen.

        Im Gegenteil, die letzte Leerzeile muß unter allen Umständen dahin. Zwar in Unix-Style, aber sie _muß_
        dorthin.

        Den Fehler habe ich überigens immer, wenn ich den letzten Umbruch weglasse ;)

        Hmmmh... kann ich nicht bestätigen, sprechen wir von der gleichen Leerzeile???

        view-source:http://www.teamone.de/selfhtml/sfarchiv/src/vielposter.txt

        Ansonsten hat eher Slyh damit recht, dass die Leerzeile *nach* END_of_me, EOT, EOF oder wie man das immer genannt hat, ein Muss ist.

        Mutmassung: Es kann auch sein, dass Bernhard eine mit
        print <<IRGENDWAS begonnene Anweisung irgendwo weiter unten nicht mit
        IRGENDWAS + Leerzeile vorher geschlossen hat!

        Bis danndann
        PAF (patrickausfrankfurt)

        <img src="/selfaktuell/extras/selfcomm.jpg" alt=""> http://www.atomic-eggs.com/selfspezial/guests/advguest.cgi?view

        1. Hi Patrick,

          Hmmmh... kann ich nicht bestätigen, sprechen wir von der gleichen Leerzeile???

          Anscheinend nicht ;-) denn ich meine genau die Leerzeile _nach_ dem Begrenzer, auf die Slyh angespielt
          hat.

          Mutmassung: Es kann auch sein, dass Bernhard eine mit
          print <<IRGENDWAS begonnene Anweisung irgendwo weiter unten nicht mit
          IRGENDWAS + Leerzeile vorher geschlossen hat!

          Jap, genau das meine ich.

          mfg
          CK1

          P.S.: Dieses Konstrukt nennt sich ein "Here-Document", Slyh ,)

          P.P.S.:

          1. Danke Jungs,

            ihr hattet voll recht, war wiedermal so ein Haare-Ausrupfer-Fehler, die mir ständig passieren. Da wäre ich doch nie draufgekommen, dass nach dem "Terminator" noch eine Zeile hingehört.

            Jetzt weiss ich auch, warum das manchmal funktioniert hat, und manchmal nicht!

            Erleuchtet werden ist wirklich was einmalig schönes :-)

            Danke nochmal,
            Bernhard

            1. hi ho

              um solchen kleinen sachen aus dem weg zu gehen, hab ich mir angewoehnt, ans ende meiner quelltexte sowas wie

              end of source

              zu schreiben -> damit schlage ich gleich zwei fliegen mit einer klappe .-)

              cua

              n.d.p.

  2. Hi,

    Der PERL-Interpreter schreibt dann immer <Can't find string terminator "END_of_me" anywhere before EOF at adminKurseStep1.pl line 5>

    Diese Fehlermeldung erhalte ich nur, wenn die Zeile 'END_of_me' die letzte Zeile ist. Mach einfach nach
    END_of_me eine Leerzeile. Dann klappt's auch mit den... wie heißt dieses Perl-Konstruk jetzt gleich?

    Gruß,
    Slyh

    1. hi!

      Der PERL-Interpreter schreibt dann immer <Can't find string
      terminator "END_of_me" anywhere before EOF at
      adminKurseStep1.pl line 5>
      Diese Fehlermeldung erhalte ich nur, wenn die Zeile 'END_of_me'
      die letzte Zeile ist. Mach einfach nach END_of_me eine Leerzeile.
      Dann klappt's auch mit den... wie heißt dieses Perl-Konstruk jetzt
      gleich?

      Hier-Dokument (engl. here document).

      bye, Frank!