lunes, 9 de septiembre de 2013

Funciones útiles de Perl


A continuación podrás ver una serie de funciones que vienen integradas en Perl, útiles para el tratamiento de strings, matemáticas y listas.


Funciones de Strings y Listas

chomp, chop, chr, crypt, index, lc, lcfirst, length, rindex, substr, uc, ucfirst

chomp: Elimina los saltos de línea -> \n.
my @cadena = ("Hola Mundo \n", "Hola Mundo \n", "Hola Mundo \n");
#devuelve un numero con el numero de saltos de linea eliminados
print "Numero de saltos de linea eliminados: " . chomp(@cadena); 
print "\n";
#Devuelve los elementos del array sin saltos de linea
print @cadena; 
#regresa: Numero de saltos de linea eliminados: 3
#regresa: Hola Mundo Hola Mundo Hola Mundo


chop: Elimina el último carácter de la cadena.
my $cadena = "Eliminar el ultimo caracter de la cadena";
#devuelve el caracter eliminado
print "Ultimo caracter eliminado: " . chop($cadena);
print "\n";
#muestra el string, ya sin el caracter eliminado
print $cadena;
#regresa: Ultimo caracter eliminado: a
#regresa: Eliminar el ultimo caracter de la caden


chr: Devuelve el carácter representado de la tabla ASCII, a través del número indicado.
$ascii = 49;
print chr($ascii);
#regresa 1


crypt: Encripta la cadena pasada por el primer parámetro, a través de los caracteres dados en el segundo.
$password = "password";
print "Password encriptado: " . crypt($password, "0123456789");


index: Devuelve la posición de la primera ocurrencia del substring, la posición inicial es 0, si el substring no es encontrado devuelve -1.
$cadena = "Buscando la posicion de la palabra perl";
print index($cadena, "perl", 0);
#regresa: 35


lc: Regresa el string seleccionado en minúsculas.
$cadena = "APRENDIENDO PERL";
print lc($cadena);
#regresa: aprendiendo perl


lcfirst: Regresa el primer carácter del string convertido en minúscula.
$cadena = "APRENDIENDO PERL";
print lcfirst($cadena);
#regresa: aPRENDIENDO PERL


length: Regresa la longitud total del string seleccionado.
$cadena = "Longitud de esta cadena de texto";
print length($cadena);
#regresa: 32


rindex: Devuelve la posición de la última ocurrencia del substring, la posición inicial si no se indica nada empieza al final de la cadena, si el substring no es encontrado devuelve -1.
$cadena = "perl perl perl perl";
print rindex($cadena, "perl");
#regresa: 15


substr: Regresa el substring a través de las coordenadas inicio, final, si es negativo la extracción se realiza de derecha a izquierda.
#substr($string, inicio, final);
$cadena = "Buscando un substring";
print substr($cadena, -9, 9);
#regresa: substring


uc: Devuelve el string convertido en mayúsculas.
$cadena = "aprendiendo perl";
print uc($cadena);
#regresa: APRENDIENDO PERL


ucfirst: Regresa la primera letra de la cadena en mayúsculas.
$cadena = "aprendiendo perl";
print ucfirst($cadena);
#regresa: Aprendiendo perl


Funciones de Arrays

grep, join, pop, push, reverse, scalar, shift, sort, split, unshift

grep: busca mediante una expresión regular posibles coincidencias entre los elementos de un array
@elementos = ("perro", "casa", "puerro", "puerta");
print grep(/rro/, @elementos);
#regresa: perropuerro


join: Útil para separar mediante un determinado carácter los elementos de un array.
@elementos = ("separados", "por", "comas", "a", "traves", "de", "join");
print join(", ", @elementos);
#regresa: separados, por, comas, a, traves, de, join


pop: Extrae el último elemento de un array, este elemento deja de formar parte del array.
@elementos = ("uno", "dos", "tres");
print pop(@elementos); #regresa tres
print "\n";
print @elementos; #regresa uno dos


push: Permite añadir nuevos elementos a final de un array, bien puede ser un escalar o un array.
@elementos1 = ("uno", "dos", "tres");
@elementos2 = ("cuatro", "cinco");
push(@elementos1, @elementos2);
print @elementos1;
#regresa: uno dos tres cuatro cinco


reverse: revierte la posición de los elementos del array seleccionado.
@elementos = (9, 8, 7, 6, 5, 4, 3, 2, 1);
print reverse(@elementos);
#regresa: 123456789


scalar: devuelve el número total de elementos de un array.

@elementos = ("uno", "dos", "tres");
print scalar(@elementos);
#regresa: 3


shift: Extrae el primer elemento de un array, este elemento deja de formar parte del array.

@elementos = ("uno", "dos", "tres");
print shift(@elementos); #regresa uno
print "\n";
print @elementos; #regresa: dos tres


sort: ordena los elementos de un array de menor a mayor alfabéticamente.

@elementos = ("zorro", "casa", "resto", "barca", "coche", "alto");
print sort(@elementos);
#regresa: alto barca casa coche resto zorro


split: Divide un string para convertirlo en un array, a partir del patrón indicado.

$cadena = "uno dos tres cuatro";
@nuevo_array = split(" ", $cadena);
print $nuevo_array[1];
#regresa: 2


unshift: Permite añadir nuevos elementos al principio de un array, bien puede ser un escalar o un array.

@elementos1 = ("tres", "cuatro", "cinco");
@elementos2 = ("uno", "dos");
unshift(@elementos1, @elementos2);
print @elementos1;
#regresa: uno dos tres cuatro cinco


Funciones Matemáticas

abs, atan2, cos, exp, int, log, rand, sin, sqrt, srand, time

abs: Devuelve el valor absoluto del argumento número, si seleccionas 1 devuelve 1, si es un
numero negativo lo regresa positivo, es decir -1 = 1
$numero = -100;
print abs($numero);
#regresa 100


atan2:Esta función devuelve la tangente inversa de las coordenadas especificadas por los argumentos coord_x y coord_y. El valor devuelto por la función es un ángulo. El resultado viene dado en radianes.
$coord_x = 30;
$coord_y = 20;
print atan2($coord_y, $coord_x);
#regresa 0.982793723247329


cos: Esta función calcula el coseno del argumento número.
$numero = 20;
print cos($numero);
#regresa 0.408082061813392


exp: El resultado de esta función es el número e elevado a la potencia indicada en el argumento.
e**2
$numero = 12;
print exp($numero);
#regresa 162754.791419004


int: Convierte el número dado, en un número entero.
$numero = 13.3;
print int($numero);
#regresa 13


log: Calcula el logaritmo natural del valor. Esta es la inversa de la función exp.
$numero = 12;
print log($numero);
#regresa 2.484906649788


rand: Devuelve un número real aleatorio entre 0 y la expresión pasada. Si no se pasa ningún valor, se asume 1 y un valor entre 0 y 1 se devuelve.
$rand = rand(999999999999999);
print $rand;


sin: Se devuelve el seno en radianes.
$numero = 222;
print sin($numero);
#devuelve 0.868950838216349


sqrt: Devuelve la raíz cuadrada del valor.
$numero = 4;
print sqrt($numero);
#devuelve 2


srand: Establece el valor de inicialización para el generador de números aleatorios a expr o a un valor aleatorio basado en el tiempo, ID de proceso, y otros valores si se omite expr.
srand(12);
print rand();
#devuelve 0.002349853515625
print "\n";
#mantenemos el mismo numero aleatorio, volviendo a llamar a srand()
srand(12);
print rand();
#devuelve 0.002349853515625


time: Devuelve el número de segundos desde el 1 de enero de 1970.
print time() + 50;
#devuelve el numero de segundos mas 50