Página 1 de 1

Cómo me ahorro líneas en este código

NotaPublicado: 2008-10-13 13:37 @609
por danimera
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @dias_calendario = qw( 02 05 10 20 );

sub quitacero{
    my $num = $_;

    if($num < 10){

        return substr $num, 1;
       
    };

};


@dias_calendario = map (quitacero($_,1),@dias_calendario);

print join "<br>",@dias_calendario;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Mejor dicho: lo que quiero es quitarle los ceros que antepone a cualquier número menor de 10 pero hacerlo en una sola línea con map() ^^ sin crear función aparte.

NotaPublicado: 2008-10-13 17:03 @752
por kidd
Mis dos centavos:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @sin_ceros = map { s/^0+//; $_ } @dias_calendario;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y unos centavos más, con eso de que Perl nos dá muchas opciones:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @sin_ceros = map { int } @dias_calendario;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Resultado:

Código: Seleccionar todo
2
5
10
20



Saludos

NotaPublicado: 2008-10-13 17:31 @771
por explorer
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @sin_ceros = map { 0+$_ } @dias_calendario;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-10-13 23:04 @002
por danimera
Jejejeje, gracias, gracias.