• Publicidad

Problemas con la tabulación

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

Problemas con la tabulación

Notapor oihantze » 2009-07-20 10:01 @459

¡¡Hola otra vez!!

Estoy tratando de hacer un subprograma que pasándole como parámetro una línea que puede o no tener tabulaciones al principio me devuelva esa línea pero sin tabulaciones, por ejemplo:

input => \t \t hola
output=>hola

El subprograma que he hecho es este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub quitar_tabulacion{
#$_[0]=> viene la linea del titulo
if ($_[0]=~ /^\t/){   ### aquí es donde me debería de entrar y no entra.
        @titulo=split("\t", $_[0]);
        foreach $parte (@titulo){
                if ($parte =~ m/\S/){
                        return($parte);
                }
        }
}
else {
    return($_[0]);
}
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Si alguien sabe contestarme lo agradecería.
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759

Publicidad

Re: Problemas con la tabulación

Notapor explorer » 2009-07-20 10:13 @467

No entra porque en la entrada veo que hay un carácter de espacio en blanco. Y tu estás buscando que empiece por un tabulador.

Lo que no entiendo es por qué usas split().

En cuanto al problema en sí, se puede resolver de veinte formas distintas (o algo así).

Por ejemplo, podrías hacer un bucle por todos los caracteres, uno a uno, con la ayuda de substr(). Si el carácter leído es un espacio en blanco o tabulador, pasamos al siguiente. Si no lo es, entonces regresamos de la función con los caracteres que van del carácter actual hasta el final.

Y con expresiones regulares... pues en una línea :)
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: Problemas con la tabulación

Notapor oihantze » 2009-07-20 10:28 @478

¿Y cómo funciona la función substr()? Por que estoy buscando y no lo encuentro.

Lo del espacio ha sido una equivocación. Es tabulación desde el principio.
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759

Re: Problemas con la tabulación

Notapor explorer » 2009-07-20 10:41 @487

Cuando quieras saber la sinopsis de una función, solo tienes que, en tu propio ordenador, ejecutar la sentencia:

perldoc -f substr

Si, además, estás en Linux, puedes consultar la página de manual de las funciones:

man perlfunc

Esta información también está vía web: http://perldoc.perl.org/functions/substr.html

En Firefox, puedes agregar un motor de búsqueda de perldoc.perl.org: https://addons.mozilla.org/es-ES/firefo ... &cat=4%2C0
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: Problemas con la tabulación

Notapor oihantze » 2009-07-21 16:33 @731

¡¡Muchas gracias!! ¡¡Ya lo he solucionado!!
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759

Re: Problemas con la tabulación

Notapor explorer » 2009-07-21 17:50 @785

¿Algo así?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub quitar_tabulacion {
    my $cadena = $_[0];        # argumento
    $cadena =~ s/^\t*//;       # sustituimos (s///) todos los posibles (*) tabuladores (\t) iniciales (^), por nada
    return $cadena;            # y lo devolvemos
}
Coloreado en 0.002 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: 14480
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 2 invitados

cron