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 einer weitgehend frei wählbaren Zeichenfolge, die das Ende des Heredoc markiert (Delimiter); in der nächsten Zeile beginnt der Text des Heredoc. Das Ende des Heredoc wird durch eine Zeile mit dem zuvor gewählten Delimiter und gegebenenfalls einem Semikolon oder einem Zeilenende 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.

Siehe auch

Einzelnachweise

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