strawberry programa logo lane example descargar compilador perl

programa - Perl: función para recortar los espacios en blanco y posteriores del hilo



perl vs python (10)

Aplicar: s/^/s*//; s//s+$//; s/^/s*//; s//s+$//; lo. O use s/^/s+|/s+$//g si quiere ser elegante.

¿Hay una función incorporada para recortar los espacios en blanco iniciales y finales de modo que trim(" hello world ") eq "hello world" ?


Aquí hay un enfoque que usa una expresión regular:

$string =~ s/^/s+|/s+$//g ; # remove both leading and trailing whitespace

Perl 6 incluirá una función de recorte:

$string .= trim;

Fuente: Wikipedia




Esto está disponible en String::Util con el método de trim :

Nota del editor: String::Util no es un módulo principal, pero puede instalarlo desde CPAN con [sudo] cpan String::Util .

use String::Util ''trim''; my $str = " hello "; $str = trim($str); print "string is now: ''$str''/n";

huellas dactilares:

la cuerda ahora es ''hola''

Sin embargo, es bastante fácil hacerlo usted mismo:

$str =~ s/^/s+//; $str =~ s//s+$//;


No hay función de trim incorporada, pero puede implementar fácilmente la suya con una simple sustitución:

sub trim { (my $s = $_[0]) =~ s/^/s+|/s+$//g; return $s; }

o usando la sustitución no destructiva en Perl 5.14 y posterior:

sub trim { return $_[0] =~ s/^/s+|/s+$//rg; }


No, pero puede usar el operador s/// sustitución y la aserción de /s whitespace para obtener el mismo resultado.


Para aquellos que están usando Text :: CSV, encontré este hilo y luego noté dentro del módulo CSV que podría quitarlo mediante el cambio:

$csv = Text::CSV->new({allow_whitespace => 1});

La lógica es al revés porque si quieres desnudarte, debes establecerlo en 1. Ve figura. Espero que esto ayude a cualquiera.


También utilizo un lookahead positivo para recortar espacios repetitivos dentro del texto:

s/^/s+|/s(?=/s)|/s+$//g


Una opción es Text::Trim :

use Text::Trim; print trim(" example ");