Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 0uts1de en 13 Diciembre 2016, 18:41 pm



Título: Ayuda con un script perl:
Publicado por: 0uts1de en 13 Diciembre 2016, 18:41 pm
Hola, os pido ayuda porque soy nuevo en perl e intentando hacer un codigo no funciona y no se porque, antes de empezar, gracias por leer esto, y si eso gracias por la ayuda!!  :)

Empezemos:

He intentado crear un codigo que te pregunta por 2 numeros de autentificación, para luego decirtelos junto a tu nombre, es muy sencillo pero era solo para practicar los "until", lo que lleva until dentro es para comprobar si es un numero, y es alli donde falla,ya que da igual si es numero o no que lo deja pasar, y como no se porque falla aqui estamos!, este es el codigo:
Código:
#!usr/local/bin/perl

print "\n" ;

print "recuerde los numeros que escriba, seran preguntados luego\n" ;

print "--------------------------------------\n" ;

print "introduzca sus numeros de identificación : " ;

$num1 = <STDIN> ;

chop $num1 ;

until ( $num1 = ~ /^[+-]?\d+$/ ) {

print "no es un numero,porfavor, escribe un numero:\n" ;

$num1 = <STDIN> ;

chop $num1 ;

}

print "perfecto, sigamos el proceso....\n" ;

print "ahora introduce otro: " ;

$num2 = <STDIN> ;

chop $num2 ;

until ( $num2 = ~ /^[+-]?\d+$/ ) {

print "no es un numero, porfavor escriba uno\n" ;

$num2 = <STDIN> ;

chop $num2 ;

}

print "perfecto, sige mas porfavor...\n" ;

print "introduce tu nombre: " ;

$nom = <STDIN> ;

chop $nom ;

print "vale, ahora reintroduzca sus numeros si estos eran validos, primero el primero que introdució:\n" ;

$num3 = <STDIN> ;

chop $num3 ;

print "ahora el segundo numero, porfavor" ;

$num4 = <STDIN> ;

chop $num4 ;

print "hola $nom , tus numeros identificativos son $num3 y $num4\n " ;

Gracias por la ayuda por adelantado!!!


Título: Re: Ayuda con un script perl:
Publicado por: Ocelot1994 en 14 Diciembre 2016, 12:58 pm
Hola outside
No se lo que introduciras en tu teclado , pero con el chop vas a borrar el último carácter de la cadena que le pase, acostumbrate a declarar las variables con la palabra reservada "my".

Y otra cosa la expresión regular la tienes mal, empieza haciendo una sencillita y luego vete añadiento mas casos para que te quede un expresión regular más completa,prueba algo así

Código
  1. my $num =<STDIN>;
  2.  
  3. until($num =~ [A-Z]/gi ){
  4. .......
  5. }
  6.  

Un saludo


Título: Re: Ayuda con un script perl:
Publicado por: 0uts1de en 14 Diciembre 2016, 16:46 pm
Hola outside
No se lo que introduciras en tu teclado , pero con el chop vas a borrar el último carácter de la cadena que le pase, acostumbrate a declarar las variables con la palabra reservada "my".

Y otra cosa la expresión regular la tienes mal, empieza haciendo una sencillita y luego vete añadiento mas casos para que te quede un expresión regular más completa,prueba algo así

Código
  1. my $num =<STDIN>;
  2.  
  3. until($num =~ [A-Z]/gi ){
  4. .......
  5. }
  6.  

Un saludo

Gracias por la respuesta Diego5, gracias a tu comentario he consegido que funcione, y el tema de las variables me servira para mas adelante, un saludo a ti tambien  :)