• Publicidad

Error con expresión regular

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

Error con expresión regular

Notapor BigBear » 2016-06-18 19:24 @850

Hola, tengo el siguiente código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $code = "";
  2.  
  3. open(FILE, 'raro.html');
  4. while (my $line = <FILE>) {
  5.     $code .= $line;
  6. }
  7. close (FILE);
  8.  
  9. chomp $code;
  10.  
  11. while ($code =~ /(?<="r"><. href=")(.+?)"/mig ) {
  12.         my $link = $1;
  13.         print $link."\n";
  14. }
  15. else {
  16.         print "nop";
  17. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El tema es que si uso while() en vez if() me devuelve estos errores:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Can't use global @_ in "my" at  line 45, near "= @_"
syntax error  line 60, near "}"
Can't use global @_ in "my"  line 63, near "= @_"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Y sigue marcando lo mismo en todo el código. ¿Qué puede ser? ¿Dejé algo abierto?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Error con expresión regular

Notapor explorer » 2016-06-18 20:02 @876

No se trata de la expresión regular.

El error está en que un while() no tiene nunca una parte else{}. Es un error de sintaxis grave.

Y si cambias el while() por if(), tendremos una estructura correcta (if(){}else{}) pero el problema está ahora en el uso del operador diamante (<>): no es correcto dentro de un if() o, al menos, diremos que lo más lógico es que aparezca dentro de un while() (leer mientras no se llegue al final de un archivo).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error con expresión regular

Notapor BigBear » 2016-06-18 21:44 @947

Maldita media noche, siempre es lo mismo :lol: Ignora la pregunta, explorer.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818


Volver a Básico

¿Quién está conectado?

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

cron