Christoph Schnauß: Funktionsaufrufe in HERE-Dokumenten...?

Beitrag lesen

h,

gar nicht
gar nicht gibt's nicht. Du und Struppi gewöhnt euch besser diese zugeständnislosen Behauptungen ab

Und du gewöhnst dir bitte eine korrekte Zitationsweise an - ich habe "eigentlich gar nicht" geschrieben.

Man kann nämlich sehr wohl beliebige Ausdrücke in Strings interpolieren, also auch Funktionsaufrufe in Heredocs.

Darauf war der OP schon selbst gekommen, und ich habe es lediglich bekräftigt.

use diagnostics;

"diagnostics" ist ganz nett, verwirrt hier aber eher, weil: "This module extends the terse diagnostics normally emitted by both the perl compiler and the perl interpreter (from running perl with a -w switch or "use warnings"), augmenting them with the more explicative and endearing descriptions found in perldiag. Like the other pragmata, it affects the compilation phase of your program rather than merely the execution phase."

print <<"";
Es ist jetzt @{[scalar localtime]}.
1 plus 1 ist @{[1+1]}.

Wenn man das auch noch wirklich als korrekten Code schreibt, funktioniert das natürlich, illustriert aber nichts anderes als meine Aussage. Es geht bloß laut OP um ungefähr so etwas:

  
print << Ende;  
<html><head><title>ups</title></head>  
<body>  
<h1>Super!</h1>  
<p>Sie haben folgenden Preis gewonnen:  
sub preisausschreiben {  
   if {[richtige Antwort => Gutschein über 100 Euro]}  
   elseif {[Juriy gut gelaunt => Gutschein über lebenslange Monatsrente von (Betrag bitte einsetzen) Euro]}  
   else {[gehen Sie nicht über Los, aber direkt ins Gefängnis]}  
}  
</p>  
ENDE  

Da kann man zappeln, wie man will, das klappt nicht.

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|