• Publicidad

condición if

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

condición if

Notapor later » 2009-02-18 10:24 @475

Hola buenas, tengo un problema al hacer una condición con if.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$user = $1 if ( $doc =~ m/::(.*?)__/mosix);
if (!$user) {
    print "\033[1mUser mysql:\033[0m not found!\n";
}
else {
    print "\033[1mUser mysql:\033[0m $user\n";
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mi código lo tengo puesto así pero éste no funciona siempre como debería de funcionar.

Yo lo que quiero hacer es que si esta línea se cumple:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$user = $1 if ( $doc =~ m/::(.*?)__/mosix);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

imprima el $user, y si no (else), el 'not found'.

Pero no la cosa rara que tengo puesta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if (!$user) {
}
else {
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
later
Perlero nuevo
Perlero nuevo
 
Mensajes: 46
Registrado: 2007-10-06 12:42 @570

Publicidad

Notapor explorer » 2009-02-18 11:13 @509

Yo lo veo bien. No veo fallos, salvo que en alguna ocasión $1 sea un '0' o un ''.

Otra forma de ponerlo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $doc =~ m/::(.+?)__/mosix )
    print "\033[1mUser mysql:\033[0m $1\n";
}
else {
    print "\033[1mUser mysql:\033[0m not found!\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Observa cómo he cambiado el '*' por el '+'. Si no hiciera ese cambio, podría darse el caso de que coincidiese el patrón con una cadena vacía, y disparar la parte del if de que hemos encontrado usuario, pero no es así. Exigiendo que al menos haya un carácter, nos aseguramos que sí hemos encontrado un nombre de usuario.
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: Google [Bot] y 0 invitados

cron