Also known as here-document, here-text, hereis, here-string, here-script
a section of a source code file that is treated as if it were a separate file
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 <<, <<<, <!--</code>, <code><<-</code> oder ähnliche Zeichenfolgen eingeleitet, gefolgt von einem frei wählbaren <a href="/wiki/Delimiter" class="mw-redirect" title="Delimiter">Delimiter</a>-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.</p><p>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.</p><p>Beispielhafte Umsetzung in <a href="/wiki/PHP" title="PHP">PHP</a>:<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup></p><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="cp"><?php</span><span class="k">echo</span> <span class="s"><<<</span><span class="dl">ENDE</span><span class="s"></span><span class="s">Dies ist ein Heredoc</span><span class="s">zweite Zeile</span><span class="dl">ENDE</span><span class="p">;</span><span class="cp">?></span><span class="x"></span></pre></div><p>Ein Beispiel in <a href="/wiki/Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>:<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[3]</a></sup></p><div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="n">text</span><span class="o">=</span><span class="s2">"""</span><span class="si">{name}</span><span class="s2"></span><span class="s2">wohnt in</span><span class="si">{place}</span><span class="s2">"""</span><span class="nb">print</span><span class="p">(</span><span class="n">text</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">'Christoph'</span><span class="p">,</span> <span class="n">place</span><span class="o">=</span><span class="s1">'Chur'</span><span class="p">))</span></pre></div><p>Gibt</p><pre>Christophwohnt inChur</pre><p>aus.</p><h2><span class="mw-headline" id="Siehe_auch">Siehe auch</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Heredoc&veaction=edit§ion=1" class="mw-editsection-visualeditor" title="Abschnitt bearbeiten: Siehe auch">Bearbeiten</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Heredoc&action=edit§ion=1" title="Abschnitt bearbeiten: Siehe auch">Quelltext bearbeiten</a><span class="mw-editsection-bracket">]</span></span></h2><ul><li><a href="/wiki/Literal" title="Literal">Literal</a></li><li><a href="/wiki/Zeichenkette" title="Zeichenkette">Zeichenkette</a></li><li><a href="/wiki/Einzeiler_(Informatik)" title="Einzeiler (Informatik)">Einzeiler in der Informatik</a></li></ul><h2><span class="mw-headline" id="Einzelnachweise">Einzelnachweise</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Heredoc&veaction=edit§ion=2" class="mw-editsection-visualeditor" title="Abschnitt bearbeiten: Einzelnachweise">Bearbeiten</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Heredoc&action=edit§ion=2" title="Abschnitt bearbeiten: Einzelnachweise">Quelltext bearbeiten</a><span class="mw-editsection-bracket">]</span></span></h2><ol class="references"><li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">David Sklar, Adam Trachtenberg: PHP Kochbuch, O’Reilly, Köln, 2003, <a href="/wiki/Spezial:ISBN-Suche/3897213516" class="internal mw-magiclink-isbn">ISBN 3-89721-351-6</a>, S. 2–3</span></li><li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=82&group=20">SELFPHP Heredoc</a></span></li><li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://devcamp.com/trails/introduction-programming-python/campsites/python-strings/guides/guide-heredocs-python">devcamp.com Guide to Heredocs in Python</a></span></li></ol><!-- NewPP limit reportParsed by mw1358Cached time: 20221129013911Cache expiry: 1814400Reduced expiry: falseComplications: []CPU time usage: 0.021 secondsReal time usage: 0.026 secondsPreprocessor visited node count: 72/1000000Post‐expand include size: 0/2097152 bytesTemplate argument size: 0/2097152 bytesHighest expansion depth: 2/100Expensive parser function count: 2/500Unstrip recursion depth: 0/20Unstrip post‐expand size: 2529/5000000 bytesNumber of Wikibase entities loaded: 0/400--> <!--Transclusion expansion time report (%,ms,calls,template)100.00% 0.000 1 -total--> <!-- Saved in parser cache with key dewiki:pcache:idhash:3951601-0!canonical and timestamp 20221129013911 and revision id 227748170. -->
Abstract from DBpedia / Wikipedia · CC BY-SA
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).