• Publicidad

Reemplazar * en un script Perl

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

Reemplazar * en un script Perl

Notapor laosito » 2007-06-15 09:04 @420

Hola. He heredado un script en Perl que depura ficheros de texto mediante encadenación de if.

No se nada de Perl, el recorrido del fichero se hace carácter a carácter y se utilizan if para evaluar el carácter tipo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
                if ($fich[$x] =~ EXPRESIÓN REGULAR) {
                        print B "ERROR TIPO /\*/:\t $fich[$x]\n";
                        $fich[$x] =~ s/\*/\/g;
                }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Se supone que donde he puesto va el carácter a buscar, me ayudaríais mucho si me dijeseis como puedo escribir este if para que busque * y los reemplace por nada.

¡Gracias!
laosito
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2007-06-15 09:00 @416

Publicidad

Notapor creating021 » 2007-06-15 10:16 @469

Hola.

reemplaza
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($fich[$x] =~ EXPRESION REGULAR) {
print B "ERROR TIPO /\*/:\t $fich[$x]\n";
$fich[$x] =~ s/\*/\/g;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($fich[$x] =~ EXPRESION REGULAR) {
print B "ERROR TIPO /\*/:\t $fich[$x]\n";
$fich[$x] =~ s/\*//g;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Ves la diferencia?
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2007-06-15 19:14 @843

Bienvenido a los foros de Perl en Español.

Si no conoces Perl, esto puede ser una buena oportunidad para que lo conozcas.

En EXPRESION REGULAR has de poner casi lo mismo que tienes puesto para hacer la sustitución: m/\*/, con lo quedaría como

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $fich[$x] =~ m/\*/ ) {
    print B "ERROR TIPO /\*/:\t $fich[$x]\n";
    $fich[$x] =~ s/\*//g;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Otros cambios posibles (en Perl hay más de una forma de hacerlo):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $fich[$x] =~ m/\*/ ) {
    print B "ERROR TIPO /\*/:\t $fich[$x]\n";
    $fich[$x] =~ tr/*//d;             # Traducción de '*' a... nada... se borra
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $fich[$x] =~ m/\*/ ) {
    print B "ERROR TIPO /\*/:\t $fich[$x]\n";
    $fich[$x] =~ s///g;               # Perl 'recuerda' la última exp. reg. utilizada y la vuelve a usar
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( ($nuevo = $fich[$x]) =~ s/\*//g ) {  # copia el valor en $nuevo y le aplica la exp. reg.
                                                 # si hay cambios, el if se activa
    print B "ERROR TIPO /\*/:\t $fich[$x]\n";    # $fich[$x] sigue teniendo su valor anterior
    $fich[$x] = $nuevo;                          # y ahora le ponemos el nuevo
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor laosito » 2007-06-16 11:40 @527

Muchas gracias, el lunes cuando llegue al trabajo lo pruebo... La verdad es que me tengo que meter con perl pero no tengo mucho tiempo la verdad....

A ver si me leo lo que me recomendaste!!!
laosito
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2007-06-15 09:00 @416


Volver a Básico

¿Quién está conectado?

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