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.