martes, 1 de enero de 2013

Tutorial sub rutinas Perl

Este es el primer tutorial del año y comenzamos fuerte :P

En esta ocacion vamos a ver algo mas avanzado en Perl, que son las sub rutinas o funciones como son llamadas en otros lenguajes de programación no se si en concreto sea lo mismo que una función de otros lenguajes de programación ya que les llaman funciones,por ejemplo:

en python:

def mi_funcion():
     comandos

O en javascript:

var mi_funcion = function(){
      comandos
}

O bash:

function mi_funcion() {
comandos
}

Pero da los mismos resultados y podemos hacer funciones re-cursivas :D

Definición:

Vamos a comenzar,primero que nada las sub rutinas se definen con el parámetro sub y debe seguir por el nombre de la sub rutina y sus comandos encerrados en {}

Ejemplo:

sub hola {
print "Hola :D";
}

Esa es la forma de definición

Llamado:

Estas sub  rutinas, no son usadas hasta que las llamemos,queda aclarar que aunque no las llamemos deben estar bien definidas y con buena sintaxis,ya que perl lee todo el código antes de ejecutarlo y aunque no lo llamemos perl lo vera y no podremos ejecutar el programa hasta que este bien hecho,aunque en el mismo no usemos dicha sub rutina.

La forma de llamar nuestra sub rutina es la siguiente(hay varias):

Nota:Mas adelante hablare de parametros.

Sin parámetros:
&mi_sub_rutina;
Con parametros; pero sin ellos:

mi_sub_rutina();
Con parametros:

&mi_sub_rutina(parametro1,parametro2);

Esas son las maneras en las cuales podemos llamar nuestra funcion/sub rutina.

Parametros: 

Los parámetros son argumentos que toma nuestra función al igual que en otro lenguaje de programación solo que aquí no es tan sencillo,con por ejemplo en javascript,tenemos que pasarle el valor de los argumentos a la subrutina y devolverlos con lo que hagamos en la sub rutina:

Ejemplo 1:

Sin argumentos:

#!/usr/bin/env perl

use warnings;
use strict;

&hola; # Como ven las rutinas van abajo


sub hola {

print "Hola :D";
}


Algoritmo:

Imaginemos que tenemos que comprar un iphone,cada cierto tiempo :P y este sube de precio para saber cuanto dinero hemos dado a apple gastado ,lo que tenemos que hacer es poner el precio y el año,como sabemos podemos usar varios print, o podemos usar una función pero necesitamos pasarle los parametros:

Para eso usamos este comando @_ en una definicion de cada variable:

Esto lo podemos hacer dual de una vez:

my ($año,$costo) = @_;

Esto va dentro de la sub rutina y es lo que pide los parametros:


sub iph {

my ($año,$costo) = @_;

print "Tiempo: $año Costo: $costo\n"; 
        
       # ^ vamos a imprimir las variables
}


Y adivinen donde va a ir el año y el costo:


&iph("2007","300");

Y así queda nuestro script:



#!/usr/bin/env perl

use warnings;
use strict;



&iph("2007","300"); # Los costos son un ejemplo
&iph("2008","310"); # No reales
&iph("2009","320");
&iph("2010","330");


# ^ Llamaos la rutina las veces que queramos con nuevo valor

sub iph {

my ($año,$costo) = @_;

print "Tiempo: $año Costo: $costo\n"; 
        
       # ^ vamos a imprimir las variables
}


Ese no es todo el poder de las sub rutinas,ya que las subrutinas son fundamentales en la programación perl,pero es lo que se puede enseñar,lo demás son solo soluciones a lo que necesiten,por ejemplo en el mundo del pentest se usa mucho perl y en esto va las sub rutinas:

Hice un script de cracking brute force(fake) para que vean la estructura que se usa en perl para usar lo que serian exploits, esto si usáramos módulos reales y hiciéramos unos ajustes al código que les voy a dejar:

Bueno eso es todo:

Enlace

O pueden ver el navegador web que estoy haciendo,usa sub rutinas un poco mas avanzadas

Versión 4.1 no terminada:

Enlace



Feliz 2013


No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.