• Publicidad

Operadores bindings

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Operadores bindings

Notapor mikel_2 » 2011-08-23 15:38 @693

Hola, veréis...estoy aprendiendo Perl, y en el curso que estoy leyendo, plantean un ejercicio en el que se le debe pedir al usuario un radio y el programa debe calcular el área del círculo. Pero hay una parte que pone...

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Compruebe el comportamiento de su programa contra entradas
    Valores normales: 1, 4.5, -3.2
    Diferentes formatos de flotante: 1e2, 1.0e-1, etc.
    Cero
    Negativas
    Cadenas de caracteres: la cadena vacía, cadenas de caracteres que contienen números, p. ej. "one 1.0 two 2.0", etc.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Hasta ahora tengo esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. my $rad = 0;
  5. my $pi  = 3.14;
  6. my $area;
  7. while () {
  8.     print "Introduzca el radio de la circunferencia: ";
  9.     $rad = <STDIN>;
  10.     if ( $rad =~ /a-Z/ ) { print "Error!\n"; exit 1; }
  11.     elsif ( $rad =~ '\d' ) {
  12.         chomp $rad;
  13.         if ( $rad <= 0 ) { print "Error!\n"; exit 1; }
  14.         $area = $pi * ( $rad**2 );
  15.         print "El area es $area\n";
  16.     }
  17.     else { print "Error!\n"; exit 1; }
  18. }
  19.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Ya sé que el código debe ser muy sucio :(, pero la pregunta es, ¿no se supone que la línea ...$rad =~ /a-Z/)... más las siguientes 2 sentencias evitarían que al introducir cosas como "jo1 jo 2 jo 3" tire un error?

Saludos
mikel_2
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2011-08-23 15:29 @686

Publicidad

Re: Operadores bindings

Notapor explorer » 2011-08-23 15:44 @697

Bienvenido a los foros de Perl en español, mikel_2.

La expresión regular /a-Z/ busca por, exactamente, lo que estás poniendo: un carácter 'a', un carácter '-', y un carácter 'Z'.

¿No habrás querido poner /[a-zA-Z]/?

Hay otro error en la línea 11: $rad =~ '\d' está mal escrito. Es

$rad =~ m'\d'

o

$rad =~ /\d/
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Operadores bindings

Notapor mikel_2 » 2011-08-24 04:59 @249

Gracias por responder. Ya lo he apañado. Lo que estoy leyendo no es muy claro al respecto o no está hecho a prueba de tontos... :)
mikel_2
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2011-08-23 15:29 @686

Re: Operadores bindings

Notapor explorer » 2011-08-24 05:21 @264

¿Qué curso es?

¿Está en línea?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Operadores bindings

Notapor mikel_2 » 2011-08-24 09:26 @434

Acá está el curso: http://nereida.deioc.ull.es/~lhp/perlex ... mples.html

Y aquí lo referente a las expresiones regulares: http://nereida.deioc.ull.es/~lhp/perlex ... ode54.html

Hay varias cosas, por lo menos a mi, que no me quedan claras respecto a eso después de leerlo, pero como dije, probablemente no esté hecho a prueba de tontos o personas que se inicien el el scripting :))
mikel_2
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2011-08-23 15:29 @686

Re: Operadores bindings

Notapor explorer » 2011-08-24 10:02 @459

Creo recordar que este manual, escrito por Casiano (a quien tengo el gusto de conocer en persona), es para los alumnos de la Universidad, para sus clases de Perl.

Es muy difícil hacer un manual o guía de Perl, porque nuestro lenguaje es muy amplio (hecha un vistazo a la lista de funciones integradas en Perl, al principio de perlfunc).

No es de extrañar que existan libros de O'Reilly y otras editoriales para ayudar a "digerir" este elefante (mucho más grande es PHP ;) )

Además, el lenguaje en sí mismo, es muy liberal, permitiendo a un programador conseguir varias soluciones a un mismo problema, lo cual es del desagrado de otros puristas, porque dicen que así es difícil dar una serie de reglas de programación (en Perl, el libro de Damian «Perl Best Practices» es de los llamados "imprescindibles").

En este hilo tienes más referencias.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron