web stats
Featured image of post Introducción a Perl - 2

Introducción a Perl - 2

Continuamos con la segunda entrega de la Introducción a Perl. En esta ocasión vamos a adentrarnos en poco en el mundo de las variables.

Introducción a Perl - 2

Continuamos con la segunda entrega de la Introducción a Perl. En esta ocasión vamos a adentrarnos en poco en el mundo de las variables

Nomenclatura

Cualquier programa de Perl, cuenta con Variables, funciones, clases, packages, etc. Cualquier nombre debe cumplir las siguientes características:

  • Empezar por una letra o un guión bajo «_»
  • Puede incluir cualquier combinación de letras, números o guiones bajos.
  • Los nombres son «Case Sensitive». Se diferencia entre mayúsculas y minúsculas
  • Pueden tener cualquier longitud.

A la hora de escojer un nombre, debemos utilizar una nomenclatura que nos resulte informativa, y se pueda entender de manera últil y clara.

Ejemplos válidos:

1
2
3
4
5
$correcto;

%_otro_correcto;

@correcto1;

Ejemplos inválidos:

1
2
3
4
5
$una incorrecta;

@45;

%+incorrecto+;

Nomenclatura de las variables

Una variable es un espacio de memoria (o un lugar) donde almacenamos un valor. Este «lugar» o variable, podemos manipularlo, o referirnos a él directamente.

Los nombres de las variables siempre tienen al principio un símbolo, indicante el tipo al que pertenece esa variable.

Hay tres tipos de variables:

  • Escalares: $ El escalar representa el tipo básico en Perl. Permite representar enteros, reales y cadenas de caracteres
  • Matrices o arrays: @ Es una lista de datos de tipo escalar. Cada elemento de la lista es una variable escalar a la que se le asocia un valor
  • Matrices o listas asociativas: % Una matrix asociativa está indexada por cadenas en lugar de por números. Un elemento está indexado por el anterior formando ambos parejas del tipo (clave, valor).

Sin embargo, vamos a ir viendo poco a poco estos tipos de variables.

Variables Escalares

Este tipo de variables almacenan un único valor.

Su nombre comienza por $

El valor almacenado en las variables escalares puede ser modificado durante la ejecución del programa

Se pueden almacenar datos de cualquier tipo: cadena de texto, números enteros, reales…

1
2
3
$nombre = "Martin";
$edad = 24;
$precio = "22.15";

Ahora que ya tenemos una pequeña idea, vamos a empezar a utilizar este tipo de variables.

Para asignar un valor a una variable, se utiliza =

1
2
3
$nombre = "Martin";

$nombre = "Martin\n";

A la hora de manejar strings, como en el caso de arriba, se pueden utilizar varios comodines. Mas información al respecto. Sin embargo estos son los más útiles:

  • \n – Nueva linea
  • \t – tabulador

El punto (.) sirve para concatenar dos strings:

1
2
3
4
5
6
$nombre = "raul";
$apellido = "diez";
print $nombre.$apellido;
--------------------
PS C:\Temp> perl .\hello.pl
rauldiez

También podemos utilizar operadores aritméticos para operar con este tipo de variables:

  • Sumar +
  • Restar
  • Multiplicar *****
  • Dividir /
  • Exponente **
1
2
3
4
5
6
 $x = 2;
 $y = 5;

 $suma = $x + $y;
 $resta = $y - $x;
 $dividir = $x / $y;

Podemos redondear también a los decimales que queramos, con «printf«:

1
 printf "Rendondeando: 0.2f", $dividir;

length nos devuelve la longitud en caracteres:

1
2
3
4
5
6
7
8
9
$x = 22;
$y = 534;

$longitudy = length $y;

print "la longitud de $y es $longitudy";
----------------
PS C:\Temp> perl .\hello.pl
la longitud de 534 es 3

Si utilizamos comillas simples, en vez de las dobles, se imprime de forma literal:

1
2
3
4
5
6
7
8
9
$x = 22;
$y = 534;

$longitudy = length $y;

print 'la longitud de $y es $longitudy';
--------------------
PS C:\Temp> perl .\hello.pl
la longitud de $y es $longitudy

uc (uppercase) – devuelve el valor en mayúsculas

lc (lowercase) devuelve el valor en minúsculas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$x = "Martin";
$y = "Es RuBiO";

print "$x $y\n";

$mayusc = uc $x; #pasamos a mayusculas
$minusc = lc $y; # pasamos a minusculas

print "$mayusc $minusc\n";
-------------------
PS C:\Temp> perl .\hello.pl
Martin Es RuBiO
MARTIN es rubio
comments powered by Disqus
Creado con Hugo-Extended & theme Stack