Sie möchten umfangreiche Ausgaben mit Hilfe der heredoc-Syntax realisieren. Innerhalb des heredoc-Bereichs möchten Sie Funktionsergebnisse anzeigen oder auswerten.
use strict; use diagnostics; sub dog { return shift, 'Terrier'; } my $cat = 'Mimi'; my $bool; # start heredoc print <<""; 1: Heute ist @{[scalar localtime]}. 2: Ich habe @{[dog(2)]}. 3: Meine Katze heisst $cat. 4: Alle haben @{[$bool ? 'Hunger' : 'Durst']}. # end heredoc
Grundvoraussetzung für das Einbinden von Funktionsergebnissen ist der Einsatz einer Funktionsreferenz, so wie es im letzten Absatz von perlref: Using References beschrieben ist. Innerhalb der eckigen Klammern wird der gewünschte Funktionsaufruf notiert, dessen Ergebnis als Referenz auf ein anonymes Array evaluiert wird. Durch das Einschließen mittels @{...} wird das Ergebnis dereferenziert und an der entsprechenden Stelle ausgegeben.
In Zeile 1 wird die perl-eigene Funktion localtime aufgerufen und ihr Ergebnis ausgegeben, Zeile 2 zeigt den Aufruf einer eigenen Subroutine mit Wertübergabe, in Zeile 3 wird einfach der Wert der Variablen $cat ausgegeben.
Zeile 4 schließlich zeigt, dass auch einfacher Perlcode verwendet werden kann, in diesem Fall ein simpler ternärer Operator.