Here document

Here document
Secuencia de comandos en Konsole de Linux (usando shell bash) para dar vida a una salida con heredoc.

Heredoc (conjunción apocópica de Here-document o Documento-aquí en español) es una forma de representar cadenas en los lenguajes de programación o shells de algún Sistema Operativo basado en Unix. Los lenguajes de programación que más se valen de este son PHP y Ruby. La diferencia entre Heredoc y otras formas más tradicionales de mandar cadenas de caracteres a la salida estándar es que con heredoc se pueden transmitir grandes cadenas de texto con poco esfuerzo; mientras que con instrucciones simples como printf() de C y echo() de PHP hay que mandar el texto línea por línea (con un formato a veces complejo en C), incluyendo comillas, especificaciones, punto y coma, el nombre de la instrucción y a veces especificaciones, por cada línea o fragmento de ella que se desee publicar, heredoc nos da la oportunidad de mostrar extensiones mayúsculas de párrafos con una sola instrucción o un solo procedimiento.

El texto (generalmente párrafos) creados con instrucciones heredoc incluyen y respetan la indentación, los espacios y caracteres de nueva línea del texto y otros atributos difíciles de incluir con texto simple, como las comillas dobles. Generalmente la sintaxis para programar una salida con heredoc es usando alguna instrucción seguida de <<, después un identificador para el texto, siguiendo con una línea nueva y el texto mismo y, finalmente, el cierre de la instrucción.

Contenido

Shell en Linux

Con Bash podemos usar el comando tr para ejercitar heredoc:

  $ tr a-z A-Z <<IDENTIFICADOR
  > Hola a
  > todos, espero que
  > "se encuentren muy bien";
  > Saludos!!
  > IDENTIFICADOR

Incluyendo lo anterior, la salida devuelta sería:

  HOLA A
  TODOS, ESPERO QUE
  "SE ENCUENTREN MUY BIEN";
  SALUDOS!!

Y como se puede apreciar, la operación de incluir caracteres de nueva línea, comillas dobles, signos de admiración y punto y coma se vio trazada de manera sencilla.

PHP

Desde su versión 4.0, PHP permite el uso de heredoc en los documentos como implementación a la instrucción echo(); el formato es el siguiente:

  <?php
  echo   <<<EOT
  con este modo de uso de la función echo podemos
  escribir texto en
  varias líneas...
  
  o varios párrafos si se desea
  "incluyendo elementos tales como 'coma', 'punto y coma',
  'comillas dobles' y lo que es mejor:
  permite la conjugación de $VARIABLES.
  
  Adecuado para citas textuales grandes,
versos o lotes de código en HTML.
EOT; ?>

Sobra decir que la salida estándar será ese párrafo pero con el texto "" (sin texto) en sustitución a $VARIABLES a menos que tenga un valor asignado. EOT resulta ser el identificador (ID) del párrafo y se debe indicar en una nueva línea al final y con un punto y coma que indicará el final del lote de texto.

Ruby

El siguiente código es una implementación de heredoc en Ruby

  puts <<LISTA_DEL_SUPER
  
  Lista del supermercado
   ------------
  1. Pan*
  2. Huevos*
  3. Frutas*
  4. Trigo
  5. Jugo
  
  * Ración doble
  LISTA_DEL_SUPER

Lo que, guardado con el nombre pertinente, generará esto en la salida estándar:

  $ ruby grocery-list.rb
  Lista del supermercado
  ------------
  1. Pan*
  2. Huevos*
  3. Frutas*
  4. Trigo
  5. Jugo
  
  * Ración doble

Notas finales

Heredoc brinda muchas facilidades a los programadores cuando se trata de escribir líneas de texto extensas, sin embargo y pese a que provee cierta fidelidad al momento de plasmar el texto, no es muy usado por la gran mayoría de los programadores, puesto que la necesidad de incluir el caracter n como nueva línea lo hace poco portable en Windows, quien usa la combinación CRLF al presionar la tecla intro. Además es poco confiable si se trata de mostrar grandes textos al público puesto que un error en la sintaxis o en los identificadores podría hacer que no se muestre.

En PHP es mejor incluir el texto en HTML puro para evitar posibles conflictos y defectos de indentación o legibilidad, además, hablando en un sentido general, el mostrar cadenas de texto largas en un portal dinámico (de los que abundan en la Web 2.0) es mejor extraerlos de archivos o bases de datos y confiarlo a las variables; es cierto que a veces simplemente se requiere de párrafos cortos y fijos, para eso está heredoc, pero su uso debe ser con moderación.


Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Here document — A here document (also called a here document or a heredoc), is a way of specifying a string literal in command line shells such as Bash, Windows PowerShell and the Bourne Shell, as well as programming languages such as Perl, PHP, Python and Ruby …   Wikipedia

  • Here Document — Un Here Document aussi appelé heredoc ou encore document « ici même » est une manière de déclarer une chaîne de caractères dans les interpréteurs de commandes comme les shells Unix (sh, ksh, csh, bash, zsh) et dans les langages de… …   Wikipédia en Français

  • Document Type Definition — (DTD) is a set of markup declarations that define a document type for SGML family markup languages (SGML, XML, HTML). DTDs were a precursor to XML schema and have a similar function, although different capabilities. DTDs use a terse formal syntax …   Wikipedia

  • Here, There And Everywhere — Chanson par The Beatles extrait de l’album Revolver Sortie 5 août 1966 …   Wikipédia en Français

  • Here, there and everywhere — Chanson par The Beatles extrait de l’album Revolver Sortie 5 août 1966 …   Wikipédia en Français

  • Here's To The Heroes — est le titre de 2006 de The Ten Tenors. La moitié des chansons sur ce titre était écrite par les compositeurs britanniques John Barry et Don Black. Liste des pistes Just to see each other again Here s to the Heroes Buongiorno Principessa There ll …   Wikipédia en Français

  • Here's to the heroes — est le titre de 2006 de The Ten Tenors. La moitié des chansons sur ce titre était écrite par les compositeurs britanniques John Barry et Don Black. Liste des pistes Just to see each other again Here s to the Heroes Buongiorno Principessa There ll …   Wikipédia en Français

  • Here Come The ABCs — Album par They Might Be Giants Sortie 15 février 2005 (CD) 25 octobre 2005 (CD/DVD) Durée 34 45 Genre(s) Musique pour enfants Producteur(s) David Agn …   Wikipédia en Français

  • Here Comes The Sun — Chanson par The Beatles extrait de l’album Abbey Road Sortie 26 septembre 1969 …   Wikipédia en Français

  • Here With Me — Single par Dido extrait de l’album No Angel Sortie 2001 Durée 4:10 4:05 (radio edit) Genre(s) Pop Format CD Single Disque vinyle …   Wikipédia en Français

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”