Cadena de Literales en Perl: Comillas Invertidas.

No es que sean un nuevo tipo de datos. En realidad las comillas invertidas ` hacen una llamada al sistema. Lo que aparezca dentro de ellas es ejecutado por el sistema, así que debemos usar órdenes que sean reconocibles por la shell. Por ejemplo, bien podríamos listar el contenido de un directorio con el comando dir. Podríamos, incluso crear un pequeño script que apague nuestra computadora:
APAGAR LA COMPUTADORA:

#!/usr/bin/perl
#Este script apaga la computadora
#necesita ser root para lograrlo

print `shutdown -h now`;

Vamos a revisar cada línea del programa:

#!/usr/bin/perl

Esta es la llamada al intérprete.

#Este script apaga la computadora
#necesita ser root para lograrlo

Estas dos líneas son un comentario. Se le avisa al usuario que sólo podrá apagar el sistema si es un superusuario.

print `shutdown -h now`;

Ésto es una llamada al sistema. Para comunicarnos con el sistema necesitamos escribir los comandos dentro de comillas invertidas:
`comandos `
El resultado del presente programa sería el mismo si no se incluye la instrucción print, es decir si sólo ponemos la esta línea sin print, igual hacemos la llamada a shutdown, sin embargo, es mejor hacerlo mediante print. Si usted no es root, entonces al ejecutar este programa verá un mensaje como este:

shutdown: Es necesario ser superusuario

ADVERTENCIA: si usted ejecuta este script y está trabajando como sudo, o como root, la computadora se apagará y puede perder información.
También podemos escribir un programa que presente su propio código como salida, por medio del comando cat:
UN PROGRAMA QUE IMPRIME SU PROPIO CÓDIGO FUENTE:

#!/usr/bin/perl
#Este programa imprime su propio codigo

print`cat Programa.pl`;

Vamos a revisar cada línea del programa:

#!/usr/bin/perl

Esta línea la deben de llevar todos los programas al principio

#Este programa imprime su propio codigo

Esto es documentación del programa. Sirve solamente para que su creador, o quien modifique esto, sepa de qué trata el código.

print`cat Programa.pl`;

Desde luego, para que esto funcione, el programa debe de guardarse con el nombre Programa.pl y debe de estar en el mismo directorio. De no estar en el mismo directorio, debe nombrarse la ruta completa.
La salida, como se puede comprobar, es el mismo código del programa. Aquí se hace uso del comando cat

UN PROGRAMA QUE SE BORRA A SÍ MISMO:

#!/usr/bin/perl
#Este programa se borra a si mismo

print`rm -f Programa.pl`;

Vamos a revisar cada línea del programa:

#!/usr/bin/perl

De nuevo, esto debe ir siempre al inicio de un programa en perl. Para ser más precisos, use which perl y escriba esa dirección después de #!

#Este programa se borra a si mismo

Este es un comentario, e indica de qué se trata el script.

print `rm -f Programa.pl`;

Ésta línea borra el script con la orden rm -f Para que funcione, en Programa.pl se debe escribir el nombre del archivo que se quiere borrar.
=================================================================================
EJERCICIOS:
* Escriba un programa que liste todos los archivos con terminación .pl que tiene en su directorio (tal vez le convenga usar el comodín asterísco)
* Escriba un programa en perl que se llame a sí mismo de manera infinita. Para ver que su programa se ejecuta, imprima cada vez el mensaje “Hola!”. En Unix los ciclos infinitos se terminan con la combinación de teclas Control + C
=================================================================================
ENTRADA ANTERIOR:
Cadena de Literales en Perl: Comillas Dobles

Anuncios

3 comentarios

  1. jarmvel
    Publicado el 28 junio, 2012 a las 11:57 PM | Permalink | Responder

    Otro ejemplo:#!/usr/bin/perl

    print “Script sencillo en perl!\n”;
    #En la variable tipo arreglo $ARGV se guardan los parametros dados al programa
    my $fechaBackup = “$ARGV[0]-`date +%d%m%Y%H%M`”;
    print “El nombre del archivo sera: $fechaBackup \n”;

    • Publicado el 30 junio, 2012 a las 1:10 AM | Permalink | Responder

      Gracias. En realidad estos que puse no hacen nada que no se pueda hacer en otro lenguaje, como C. El uso de las variables es bastante diferente en Perl, y por lo mismo se pueden hacer más cosas con las llamadas al sistema, como tu script. Los comentarios de wordpress, como los de blogger, no soportan un html decente, es una lástima. ¿Soportan Saludos! ? .

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: