Nico: Frage zu Perl-Bitte schnelle Antwort

Ich habe eine Frage zu Perl:
Wenn ich einen print-Befehl benutze und darin einen Skalar einbinden will, muss das dann so aussehen:

print "Text $Skalar Text";

oder so:

print "text ", $Skalar, "text"; ?

Ich hoffe, dass mit jemand darauf antowrten kann.

Auf bald, Nico!

  1. Hallo Nico,
    das Letztere ist natürlich richtig:

    print "text ", $Skalar, "text"; ?

    Viele Grüße
    Rolf

    1. hi!

      das Letztere ist natürlich richtig:

      print "text ", $Skalar, "text"; ?

      Ganz falsch. Einzelne Strings werden durch "." verbunden, nicht durch ",". Für weiteres siehe auch meine direkte Antwort.

      bye, Frank!

      1. Hallo Frank,

        Ganz falsch. Einzelne Strings werden durch "." verbunden, nicht durch ",". Für weiteres siehe auch meine direkte Antwort.

        Nicht ganz falsch <g>. Mit dem String-Verknuepfen hast Du zwar voellig recht, aber print ist ja eine Funktion, die die Aneinanderreihung beliebig vieler Parameter erlaubt, wobei alle Parameter der Reihe nach geprintet werden. Und Parameter einer Funktion werden durch Kommata getrennt, deshalb ist die Schreibweise voellig korrekt.

        Meines Wissens funktionieren beide vorgestellen Varianten, wobei die mit den durch Kommata getrennten Parametern vermutlich auch von aelteren Perl-Interpretern erkannt wird. Seit welcher Version die Version mit den Skalaren innerhalb von auszugebendem Text interpretiert wird, weiss ich nicht. Mit den heute ueblichen 5er-Versionen sollte es aber in jedem Fall funktionieren.

        Viele Gruesse
          Stefan Muenz

  2. hi!

    Wenn ich einen print-Befehl benutze und darin einen Skalar einbinden will, muss das dann so aussehen:

    print "Text $Skalar Text";
    oder so:
    print "text ", $Skalar, "text"; ?

    Also das obere funktioniert auf jeden Fall, beim unteren bin ich mir nicht ganz sicher, weil einzelne Strings normalerweise durch den "."-Operator verkettet werden, nicht durch ein ",".

    Da du im oberen Beispiel doppelte statt einfache Anführungszeichen verwendest ("..."), werden alle vorkommenden Skalare interpoliert, d.h. statt dem Ausdruck $Skalar wird dessen Wert eingesetzt. Das ist auch der Grund dafür, dass du Sonderzeichen, wie eben das $, nur mit vorgestelltem \ verwenden kannst.

    Wenn du ganz sicher gehen willst, dass es funktioniert, solltest du alle Skalare, deren Wert ausgegeben werden soll, mit dem "."-Operator verknüpfen, dann kannst du auch beliebige Anführungszeichen verwenden.

    bye, Frank!

  3. Das ist der sicherste Weg ohne große Perl-Überraschungen

  4. Das ist der sicherste Weg ohne große Perl-Überraschungen

    print "Text"."$Skalar"."Text";

    1. hi!

      Das ist der sicherste Weg ohne große Perl-Überraschungen
      print "Text"."$Skalar"."Text";

      Das ist so wohl ziemlich sinnlos. Wenn, dann sollte man schon die Anführungszeichen, die $Skalar einschließen, weglassen.

      bye, Frank!