viernes, 19 de octubre de 2012

Tutorial perl desde Unix estructuras selectivas


Bueno vamos a comenzar rápido con esta parte que es la tres de estos tutoriales sobre perl,como dije en la entrada pasada existen distintos tipos de variables y la única que hemos visto son las escalares, después veremos hashes,arrays,etc pero de momento con lo que hemos aprendido basta para aprender como funcionan las estructuras selectivas osea (if,else y elsif)

En perl al igual que en otros lenguajes de programación existen una parte del programa que es una estructura selectiva,que verifica la parte del programa y decide que hacer.

 por ejemplo

En texto plano en español,seria así (+ o -) lo que pensaría el programa del código que mostrare a continuación

imprimir Como te llamas,si es el nombre demianx86 abriré lo que estoy programado para hacer

Código

#!/usr/bin/perl

my $nombre="demianx864"; # Cambia tu nombre
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);
if ($user == $nombre) {
print ("Bienvenido\n");
}


Lo explico con #

#!/usr/bin/perl

my $nombre="demianx864"; # Definimos el nombre(nuestro nombre)
print "Teclea tu nombre para continuar : "; # Imprimimos esto para que nos ayude de guia
my $user=<STDIN>; # Llamamos la entrada del teclado
chop($user); # Limpiamos la entrada, como vimos en la entrada anterior
if ($user == $nombre) { # Verificamos si coninciden los nombres
print ("Bienvenido\n"); # Si coincide se imprime esto o el comando que haya 
}

Como pueden ver no funciona,por ejemplo escriban lo que escriban dirá bienvenidos,¿esto a que se debe?

bueno se los dejaría de tarea,pero no podemos continuar si no lo explico

Lo que pasa es que hay dos cuestiones aquí

1.Estamos usando un comparador de caracteres numéricos (==) que compara los caracteres y los usa como un solo dato(como cadena,texto) escribamos lo que escribamos sera un solo valor (texto) pero si escribimos números ahí si diferencia(por que se comparan como números)

Los operadores numéricos son estos

Operador Descripción

<  menor que
>  mayor que
==  igual que
<=  menor o igual que
>=  mayor o igual que
!=  no igual a

Los operadores de cadenas son estos

Operador   Descripción

lt   menor que
gt   mayor que
eq   igual a
le   menor o igual que
ge         Mayor o igual que
ne   No igual a

Así que sabiendo eso, así seria el script

#!/usr/bin/perl

my $nombre="demianx864";
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);
if ($user eq $nombre) { # Así reconocerá sean números o letras la longitud e igualdad
print ("Bienvenido\n");
}

2.La cuestión numero dos es que el script no piensa esto(si no es el nombre que hago) así que le decimos que hacer si el nombre no es igual con el comando else

La estructura de un script con else seria así

If (condición) { # Si se cumple la condicion
comandos a ejecutar
}
else { # De lo contrario
comandos a ejecutar
}

Y implementados en nuestro ejemplo luciría así


#!/usr/local/bin/perl

my $nombre="demianx864";
print "Teclea tu nombre para continuar : ";
my $user=<STDIN>;
chop($user);

if ($user eq $nombre) {
print ("Bienvenido\n");
}
else {
print "Quien rayos eres largo de aqui |:(\n";
}

Bien hay otra cosa que se llama elsif que seria así

if (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condicion
secuencia de procesos
}
elsif (condicion) { # Si se cumple esta condición y así todos los elsif que quieras
}
else (condicion) { # De lo contrario
secuencia procesos
}

Por ejemplo lo podrías usar así



en nuestro script

#!/usr/local/bin/perl

system("clear");
system("sleep 1");

my $nombre="demianx864";
my $invitado="invitado";

print "Usuario : ";
my $user=<STDIN>;
chop($user);

if ($user eq $nombre) {
print ("Bienvenido $nombre\n");
}
elsif ($user eq $invitado) {

print ("Binvenido a la sesion de $invitado\n");
}
else {
print "Usuario incorrecto largo de aqui |:(\n";
}


Como vieron añadí

system("clear");
system("sleep 1");



Estos son comandos del sistema que llama perl, después los veremos, solo que use esto para hacer un trabajo mas limpio, también los usaremos de ahora en adelante,para que se vea mejor nuestros pequeños scripts,de momento eso es todo.


No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.