Heredoc

Ein Heredoc, auch here document (von englisch, wörtlich hier dokument) genannt, ist ein Sprachkonzept der Informatik zur Spezifikation eines Zeichenfolgenliterals in Kommandozeileninterpretern wie beispielsweise der bash, Windows PowerShell und der Bourne-Shell sowie in Programmiersprachen wie etwa Perl, PHP, Python und Ruby. Der Bezeichnung entsprechend dienen Heredocs zur Definition von Textabschnitten. Im Unterschied zu herkömmlichen Stringdefinitionen werden enthaltene Zeilenumbrüche sowie Einzüge und viele Sonderzeichen im Text bewahrt. Einige Sprachen ermöglichen auch die Interpolation von Variablen oder auch Programmcode innerhalb der Zeichenfolge.

Je nach Programmiersprache werden Heredocs durch <<, <<<, <!--, <<- oder ähnliche Zeichenfolgen eingeleitet, gefolgt von einem frei wählbaren Delimiter-Bezeichner (Trennzeichen); in den anschließenden Zeilen folgt der zuzuweisende Text. Das Ende des Heredoc wird durch eine Zeile mit dem zuvor gewählten Bezeichner und gegebenenfalls einem abschließenden Semikolon markiert.

Viele UNIX-Shells, einschließlich der Bourne-Shell (sh) und zsh, bieten Heredocs als eine Möglichkeit, um Eingabewerte für Kommandozeilenbefehle anzugeben. Die Microsoft PowerShell bietet eine ähnliche Funktionalität, sowohl interaktiv in der Shell selbst, als auch über eine spezielle Skriptsyntax in Skriptdateien, die in der PowerShell ausführbar sind.

Beispielhafte Umsetzung in PHP:[1][2]

<?php
echo <<<ENDE
Dies ist ein Heredoc
zweite Zeile
ENDE;
?>

Ein Beispiel in Python:[3]

text="""{name}
wohnt in
{place}"""
print(text.format(name='Christoph', place='Chur'))

Gibt

Christoph
wohnt in
Chur

aus.

Einzelnachweise

  1. David Sklar, Adam Trachtenberg: PHP Kochbuch, O’Reilly, Köln, 2003, ISBN 3-89721-351-6, S. 2–3
  2. SELFPHP Heredoc
  3. devcamp.com Guide to Heredocs in Python

Siehe auch