Las cadenas de caracteres en Perl, como sabéis, las manejamos como variables escalares y tienen también unas cuantas funciones específicas asociadas.
substr
Devuelve una subcadena de la cadena pasada como parámetro. Puede recibir dos o tres parámetros.
El primero es una cadena, el segundo el punto ( offset , empezando en el 0) donde empieza
la nueva subcadena y el tercero, opcional, la longitud de la subcadena a partir del punto
anterior.
my $cadena = "cadena"; my $subcadena = substr($cadena,0,4); # $subcadena contiene "cade"; $subcadena = substr($cadena,1,4); # $subcadena contiene "aden"; $subcadena = substr($cadena,2); # $subcadena contiene "dena";
index
Devuelve la posición de una subcadena dentro de una cadena, el valor devuelto en caso contrario
es -1. Puede recibir un tercer parámetro opcional que marca en qué posición debe
empezar la búsqueda.
my $cadena = "cadena"; my ($subc1,$subc2) = ('en','no'); print index($cadena,$subc1); # imprime 3 print index($cadena,$subc1,4); # imprime -1 print index($cadena,$subc2); # imprime -1
length
Devuelve la longitud de una cadena de caracteres.
print length("cadena"); # imprime 6
chomp
Elimina el último terminador de línea (símbolo de nueva línea)
\n
de una cadena
y devuelve 1 si de hecho lo eliminó. Se puede aplicar también a un arreglo de cadenas.
my $cadena = "cadena\n"; my @cadenas=("cadena1\n","cadena2\n"); print chomp($cadena); # imprime 1 print chomp(@cadenas); # imprime 2
lc, uc
Devuelven versiones en mayúsculas ( upper case , uc) o minúsculas ( lower case , lc)
de la cadena pasada como parámetro.
my $cadena = "May y min"; print lc($cadena); # imprime 'may y min' print uc($cadena); # imprime 'MAY Y MIN'
split
Función que recibe un patrón regular y una cadena y trata de extraer las diferentes subcadenas
que haya separadas por tal patrón, devolviéndolas en un arreglo. Se puede pasar un tercer
parámetro que indica el número máximo de subcadenas deseadas.
my $cadena = "cadena de caracteres|otra cadena\n"; my @subcadenas1 = split(/\s+/,$cadena); my @subcadenas2 = split(/\|/,$cadena); # separa por el carácter '|' print scalar(@subcadenas1); # contiene 4 elementos print scalar(@subcadenas2); # contiene 2 elementos
Bruno Contreras-Moreira