ELECTRONICA DIGITAL
  PROGRAMACIONES BASICAS
 
 
Como se menciona en la introducción, Perl no obliga a casi nada, así pues, lo que planteo como estructura básica es mas bien una convención que un requisito del lenguaje, a diferencia de Pascal (por ejemplo) Perl no tiene una plantilla para sus programas y si se adoptan algunos protocolos es solo por comodidad.
 
 
Los programas de Perl, por lo regular, inician con la línea:
#!/Usr/bin/perl
Esta línea, indica al SO que lo que sigue es un script de Perl, y que "Perl" (el programa con el cual debe ejecutarse) esta en el directorio "/usr/bin", la secuencia "#!" es una secuencia que UNIX reconoce, no Perl.
Un método alterno, que funciona para otras plataformas, es: en lugar de colocar esa primera línea ejecutamos:
Perl nombre_del_script.pl 
De modo que directamente se ejecuta el intérprete de Perl pasándole como primer parámetro el script a ejecutar (los demás parámetros se tomaran como parámetros al programa). Si se requiere sustituirse "Perl" por la ruta completa del programa y el nombre que el programa tenga.
Para los ejemplos sucesivos, tomare la suposición de que se trabaja en un sistema UNIX con el intérprete de Perl en el directorio "/usr/bin".
Y eso es toda la estructura básica!
Programa Hola mundo:
#!/Usr/bin/perl
print "Hola Mundon"; #Saluda
#Programa Hola Mundo, Daniel Sol Llaven, 1996, como parte del tutorial de Perl
Este programa, se escribe como un archivo de texto común, (al que recomiendo se le ponga extensión ".pl") y se cambian sus permisos para que pueda ser ejecutado (por lo regular con un "chmod 700 nombre_programa.pl" en sistemas UNIX), para ejecutarlo simplemente se invoca el nuevo script "nombre_programa.pl", hay que recordar que para el sistema particular en que se este trabajando es muy probable que deba modificarse "/usr/bin/" por otra ruta.
Así, la ejecución en un sistema UNIX podría verse como:
>chmod 700 Hola.pl
>Hola.pl
Hola Mundo
>Hola.pl
Hola Mundo
Ejecutando dos veces el script pretendo mostrar que no es necesario cambiar el modo de ejecución del script sino solo una vez.
Expliquemos las tres líneas que constituyen nuestro primer script:
#!/Usr/bin/perl
Esta línea, propiamente dicho, no es parte del script de Perl, sino una instrucción al SO para indicar que las siguientes líneas deberán interpretarse por el programa "/usr/bin/Perl", si se omite, o no funciona en el sistema operativo, podemos ejecutar el programa de la siguiente forma:
>/Usr/bin/Perl Hola.pl
Hola Mundo
>print "Hola Mundon"; #Saluda
Esta es la única instrucción del programa y esta acompañada por un comentario, la instrucción es:
print "Hola Mundon";
que pudo ser escrita como:
print ("Hola Mundon");
sin que esto implicara el mínimo cambio en funcionalidad.
A continuación tiene el comentario:
#Saluda
La sintaxis de C para comentarios no funciona en Perl, pues se usa a "/" para expresiones regulares.
#Programa Hola Mundo, Daniel Sol Llaven, 1996, como parte del tutorial de Perl
Esta línea es otro comentario, el SO y Perl consideran todo lo que este en una línea que inicie con "#" como comentario. (Excepto en el caso de que sea una primera línea, el SO lo interpreta como la indicación del interprete, pero Perl lo ignora como a cualquier otro comentario).
En nuestro programa Hola.pl no utilizamos ninguna variable, por lo que para explicar estos conceptos necesitaremos un nuevo programa, HolaP.pl que es una versión personalizada de Hola.pl.
#!/Usr/bin/perl
#Programa Hola Mundo personalizado, Daniel Sol Llaven 1996, Tutorial Perl.
print "Hola ?como te llamas?:";
$nombre=<STDIN>;
chop ($nombre);
print "$nombre!, bonito nombre, cuantos años tienes?:";
$edad=<STDIN>;
print "sabias que te faltan ". (100-$edad)." para tener 100?nAdios!n";
Su ejecución genera resultados similares a los siguientes:
>HolaP.pl
Hola ?como te llamas? : Daniel
Daniel!, bonito nombre, cuantos años tienes?:22
sabias que te faltan 78 para tener 100?
Adiós!
>             
En este programa, aparecen muchos elementos novedosos que iremos revisando poco a poco a lo largo de este documento, por el momento, revisemos que hace línea por línea:
#!/Usr/bin/perl
#Programa Hola Mundo personalizado, Daniel Sol Llaven 1996, Tutorial Perl.
Cabecera normal del programa, incluido comentario indispensable.
print "Hola ?como te llamas?:";
Esta línea escribe "Hola ?como te llamas?:" pero nótese que no escribe una vuelta de carro al final (omite el "n").
$nombre=<STDIN>;
Aquí asignamos a $nombre un renglón escrito por la entrada estándar del programa.
Perl define al "archivo" STDIN como su entrada estándar, y el operador <> que indica la lectura de una línea de un archivo de texto, de modo que <STDIN> indica la lectura de un renglón de la entrada estándar (al menos para el ejemplo!), este tema se tratara con cuidado en la sección 2.5 y 3.3 de este documento que tratan de operaciones con archivos.
Para fines prácticos, usaremos <STDIN> como la expresión que lee una línea de entrada del usuario desde teclado.
chop($nombre);
Perl, al leer la línea escrita por el usuario, también toma el enter que el usuario da, de modo que en el ejemplo, la entrada que di en vez de ser "Daniel" se puede escribir como "Danieln", (siendo "n" el carácter de vuelta de carro), la función "chop()" tiene la función de eliminar el ultimo carácter a nuestra cadena, de modo que después de esta instrucción < TT>$nombre solo tiene "Daniel". Por las características de la lectura de renglones de archivos, chop() es un elemento casi constante en programas de Perl.
(Pruébalo!, revisa que sucede si comentas esta línea, veras que al imprimir el nombre imprime también el retorno de carro avanzando una línea hacia abajo).
print "$nombre!, bonito nombre, cuantos años tienes?:";
Esta línea nos muestra como se imprime el contenido de nuestras variables de forma sencilla; notamos que en la cadena a imprimir se encuentra $nombre, el compilador lo interpreta y reemplaza por su valor, (par a imprimir "$" se pone "$"), el resto de la cadena es completamente convencional.
$edad=<STDIN>;
Esta línea, lee otra línea de TEXTO y la coloca en la variable $edad (con todo y retorno de carro).
print "sabias que te faltan”. (100-$edad)." para tener 100?nAdios!n";
Esta línea imprime un mensaje que esta dividido en tres partes, la primera y la última son cadenas convencionales, que están concatenadas (operador.) con una operación aritmética. Hay que notar que edad era un renglón de la entrada estándar, y no un numero, sin embargo no hay conflicto de tipo al operarlo con un entero, ¿porque? porque los dos, para Perl, son del mismo tipo, son escalares, después discutiremos que son los escalares y que mecanismo de conversión se utiliza para extraer el entero del texto contenido en $edad.
(Experimenta!, prueba que pasa si los valores que se dan a edad no son enteros, que pasa si son reales o cadenas!)
Después de nuestro primer encuentro con las variables de Perl, el sentimiento mas probable es el de perplejidad, ¿como maneja sus variables?, ¿a que me refería conque enteros, reales y cadenas son del mismo tipo?, y si es así, ¿como serán los demás tipos?
En realidad, las variables de Perl pretenden simplificarnos la vida, pero debemos comprender como pretenden facilitar las cosas para no terminar peleando contra ellas.



HECHO POR: MARIN GONZALEZ JESUS MANUEL
 
 
  Hoy habia 147 visitantes (565 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis