Formas faciles de imprimir muchas lineas.

Daniel Sol Llaven daniel@simba.dgsca.unam.mx
Mon, 8 Sep 1997 15:07:25 -0600 (CST)


Saludos!!!

Recien vi un mensaje diciendo que no es necesario el poner la 
acostrumbrada bateria de prints en perl cuando se desea imprimir una 
serie de lineas en Perl.

Lo cual es completamente cierto.

A modo de complemento, me atrevo a sugerir algunas formas mas o menos 
faciles para imprimir varias lineas.

Mediante un print con entrada de codigo (uso de <<)

Print permite que se le especifique lo que ha de imprimir en una especie 
de campo (cuyo delimitador ponemos nosotros), de modo que lo que se ponga 
a continuacion de el y hasta el terminador es escrito en la salida 
especificada, incluyendo vueltas de carro y substitucion de variables.

Por ejemplo, y para todos los ejemplos, supongamos que deseamos escribir:

Content Type: text-html

<HTML><HEAD>
<TITLE>Documento de Prueba</TITLE>
</HEAD><BODY>
<H1>Este es un documeto de prueba</H1>
Y como tal debe de decir algo<p>
</BODY>
</HTML>
Por supuesto, esto requiere de los saltos de linea y todo lo demas.
El codigo para hacerlo es simplemente:

print << "Delimitador";
Content Type: text-html

<HTML><HEAD>
<TITLE>Documento de Prueba</TITLE>
</HEAD><BODY>
<H1>Este es un documeto de prueba</H1>
Y como tal debe de decir algo<p>
</BODY>
</HTML>
Delimitador
# Voila!, eso es todo. notese que si usiera variables SI se 
# substituirian, por lo que si quiero poner $ o @ debo anteponerles una \

Ademas, con el afan de hacer mas facil el mantener estos pedazos de 
texto, en lo personal me gusta ponerlos en archivos que luego el CGI (o 
el programa si no son HTML) imprima.

Asi pues, si el texto esta en un archivo, digamos "texto.txt" podemos 
colocar ne el programa:
(Version Purista)
open(AE,"texto.txt");
while(AE)
{
  print;
}
close(AE);

Lo que al fin y al cabo seria equivalente de: 
(version reduccionista);

print `cat texto.txt`; #Esto solo funciona en Perl 5.002 o superior.
# En la version 4, !no hace falta el print!

Bueno, esas son solo algunas ideas, se aceptan mas: Daniel Sol Llaven

Bolo Lacertus: lacertus@servidor.dgsca.unam.mx			==~\___\
http://132.248.71.81/cgi-bin/lacertus/hola			 =__vvvv
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/GE/GED d>d? s:+ a-- C++>+++$ US+++$ P++++$ L E? W++>+++ N++ o? K- 
w--- O !M V-- PS+ PE-- Y+ PGP++ t+ 5? X- R@ tv-- b++@- DI++ D+ G++ e+>++ 
h* r++(*) z+ 
------END GEEK CODE BLOCK------