InicioLinuxIntroducción a Perl - Operadores

Introducción a Perl - Operadores

Linux2/5/2011
Esta es la continuación del post:





Los Operadores en Perl



En Perl distinguiremos tres tipos de operadores dependiendo de la representación de datos sobre la que queremos trabajas. De este manera habrá tres tipos de operadores: los operadores asociados a los escalares, los asociados a los arrays y los vinculados a las listas asociativas.

Operadores Aritméticos.


Perl suministra los siguientes operadores aritméticos.




Entre los operadores artiméticos también distinguimos los de autoincremento (++) y autodecremento (--). Estos operadores son unarios y se realiza el incremento o decremento de la variable que se le aplica. Además de la acción de modificar la variable devuelven el valor de la variable.
El operador de incremento o decremento puede ir delante o detrás de la variable, teniendo diferente significado. Si el operador ++ se situa después de la variable se denomina postincremento, haciendo que primero se tome el valor y después se incremente la variable. Ejemplo:

$n = $k++;
# el valor de k se asigna a n y después se incrementa k


Por otro lado, si el operador ++ se sitúa después de la variable se denomina preincremento y hace que primero se incremente la variable y después se tome el valor. Ejemplo:

$n = ++$k;
# primero se incrementa k y luego se asigna a n


Operadores relacionales.


Perl maneja 2 tipos de operadores relacionales: los propios de los valores numéricos y los de las cadenas de caracteres.



Mas allá de los operadores q se muestran en la tabla hay algunos propios de este lenguaje, a saber:

cmp. Este operador es utilizado para comparar caracteres, de manera que, retorna 0 si los caracteres comparados son iguales, 1 si la cadena de la derecha se encuentra al comienzo de la de la izquierda, y -1 en el caso contrario. Para aclarar el funcionamiento de este operador he aquí un ejemplo:

'one' cmp 'one' # devuelve 0
'one dog ' cmp 'one' # devuelve 1
'dog one' cmp 'one' # devuelve -1
'two' cmp 'one' # devuelve -1


<=>. Este operador se utiliza para comparar valores numéricos, retornando 0 cuando son iguales, 1 cuando el termino de la derecha es menor que el de la izquierda y -1 en el caso contrario.

=~. Este operador es usado en las expresiones regulares para indicar la presencia de un patrón de compración dentro de una variable que contiene una cadena de caracteres. Por ejemplo

if ($cadena =~ /str/) {
print $cadena;
}
else {
print "No se encuentra el patrón";
}
# verifica si 'str' se está en $cadena


* !~.Meditante este operador se verifica la no existencia del patrón de búsqueda en una cadena. He aquí un ejemplo:

if ($cadena !~ /str/) {
print "No se encuentra el patrón";
}
else {
print $cadena;
}

Operadores lógicos.


Los operadores lógicos están relacionados con los relacionales ya que normalmente los operadores que se usan son resultado de expresiones relacionales.

Los valores resultantes son cero o cadena vacía ( "" ) y distinto de cero o cadena vacía para falso o verdadero respectivamente.



Operador de selección.


Es un operador que requiere una condición y dos expresiones. Se utiliza para ejecutar una expresión u otra dependiendo de la condición. Su formato es el siguiente:

i = (x<y? 6:k+1); # si x<y entonces i=6, si no i=k+1

Operadores de asignación.


Una asignación también es un operador que devuelve la variable modificada




Operadores a nivel de bits.




Símbolos de puntuación.


Además en Perl tenemos los símbolos de puntuación que a diferencia de otros lenguajes son considerados operadores en Perl. Básicamente tenemos cuatro símbolos:

' '. Especifica valores literales. No hace sustituciones. Ejemplo:

$fecha = "14 de Julio";
print 'hoy es $fecha'; # imprime "hoy es $fecha"


" ". Especifica valores literales. Realiza sustituciones. Ejemplo:

$fecha = "14 de Julio";
print "hoy es $fecha";
# imprime "hoy es 14 de Julio"


` `. Ejecuta el comando contenido haciendo las sustituciones indicadas. Igual que muchos Shells de Unix. Por Ejemplo:

print `date`; # ejecuta comando date


/ /. Delimita expresiones regulares. Ejemplo:

if ($var =~/exe/) {
print $var;
}
# Se imprime $var si contiene el patrón exe


Precedencia de operadores.


Normalmente las expresiones en Perl se evalúan de izquierda a derecha, aunque hay algunas excepciones que es necesario tener en cuenta. No se evalúan de izquierda a derecha los operadores de asignación y el operador de selección. De todos modos siempre se recomienda usar parentesis para no tener dudas en la evaluacion.




Primitivas para el tratamiento de cadenas.


Perl posee una serie de funciones predefinidas que nos facilitan el tratamiento de cadenas de caracteres

length(cadena de caracteres). Esta función nos permite conocer la longitud de una cadena de caracteres. Por ejemplo

$cadena = "hola";
lon = length($cadena); # lon = 2


chop(cadena de caracteres). Elimina el último carácter de la cadena y retorna dicho carácter. Esta función se suele usar para eliminar el carácter de nueva línea que contienen las cadenas que se introducen por teclado o se leen de un fichero. Ejemplo:

print "Teclea algo y pulsa enter:n";
$input = <STDIN>; # $input contiene el "enter"
chop($input); # $input no lo contiene


Los operadores asociados a arrays.


El operador $#.


El operador $# permite delimitar el último índice válido de un array. Este valor norepresenta el tamaño del array, porque esto depende también del índice de base (es decir, el primer elemento del array). Esto se define por la variable $[ cuyo valor predeterminado es 0. Mediante estos dos elementos se puede delimitar el tamaño del array. Por ejemplo, si @A es un array, el código siguiente permite determinar su tamaño:

$n = $#A - $[ + 1;
print "La matriz tiene $n elementosn";


Los arrays se asignan de manera dinámica y su tamaño se modifica en función de la asignación de nuevos elementos. También es posible asignar el tamaño de memoria necesario antes de utilizar el array. Esto se hace asignado un valor requerido al operador $#. Por ejemplo:

$mes = 11; # el array tiene 12 elemento de 0 a 11



Los operadores push y pop.


Los operadores push y pop permiten respectivamente insertar y extraer el último elemento de un array. Por ejemplo:

push(@ lista, $val); # equivale @ lista = (@ lista, $val)
$oldval = pop(@ lista); # extrae el último elemento
@ lista = (1,2,3);
@ five = push(@ lista, (4,5)); # @ five = (1,2,3,4,5)
$num = pop(@ lista); # $num = 5



Los operadores shift y unshift.


Los operadores shift y unshift permiten respectivamente suprimir e insertar el primer elemento de un array. Por ejemplo:

unshift(@ list, $val); # equivale a @ list = ($val, @ list)
unshift(@ list, $a, $b, $c);
# equivale a @ list = ($a, $b, $c, @ list)
@ five = (3,4,5);
unshift(@ five,1,2); # @ five = (1,2,3,4,5)
$x = shift(@ five); # $x=1, @ five=(2,3,4,5)


Los operadores reverse y sort.


El operador reverse invierte los valores del array mientras que el operador sort los ordena en sentido creciente. Por ejemplo:

@ five = (2,3,4,5,1);
sort(@ five); # @ five = (1,2,3,4,5)
reverse(@ five); # @ five = (5,4,3,2,1)


Los operadores split y join.


Los operadores split y join permiten transformar una cadena en una lista de caracteres. Por ejemplo, cuando un usuario envía un formulario a un servidor WWW, su contenido se transmite al concatenar pares nombre-valor separados por el símbolo &. Para acceder a la información transmitida, es necesario descomponer esta cadena de caracteres.

La función split admite tres argumentos, aunque de éstos, el tercero es opcional. El primero de estos argumentos es una expresión regular y el segundo es una cadena de caracteres. La expresión regular define el modelo que deberá descomponer la cadena de caracteres.

@ lista = split(/expresión/, cadena)

El operador join realiza la tarea inversa. Así, a partir de un serparador de un lista de valores, concatena los elementos de la lista y la cadena de caracteres que representa el separador. La sintaxis del operador join es la siguiente:

$cadena = join(separador, @ lista)


Los operadores asociados a listas asociadas.


El operador keys proporciona la lista de claves o índice de una lista asociativa. Por ejemplo:

%cuotas = ("root", 10000, "pat", 256);
@ list = keys(%cuotas); # @ list = ("root", "pat" )


El operador values devuelve los valores de una lista asociativa. Por ejemplo:

%cuotas = ("root", 10000, "pat", 256);
@ list = values(%cuotas); # @ list = (10000, 256)


También se puede acceder a una lista asociativa por pares clave-valor, permitiendo el operador each recorrerla iterativamente.

%cuotas = ("root", 10000, "pat", 256);
while (($clave, $valor)=each(%cuotas)) {
print "Login: $clave, Cuota: $valorn";
}


Para suprimir elementos de una lista asociada se usa el operador delete.

%cuotas = ("root", 10000, "pat", 256);
delete $cuota{"pat"}; #%cuotas = ("root", 10000)


Próxima entrega: Estructuras de Control
UNLu
Datos archivados del Taringa! original
10puntos
313visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
pablitusss🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.