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
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
}
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.