POD2-ES

 view release on metacpan or  search on metacpan

lib/POD2/ES/perlfunc.pod  view on Meta::CPAN


=for Pod::Functions remove a trailing record separator from a string

Esta versión segura de L<C<chop>|/chop VARIABLE>, quita cualquier cadena
restante que corresponda al valor actual de L<C<$E<sol>>|perlvar/$E<sol>>
(también conocido como $INPUT_RECORD_SEPARATOR -separador de registros en
entrada- en el módulo L<C<English>|English>). Devuelve el número total de
caracteres eliminados de todos sus argumentos. Se utiliza a menudo para
eliminar el carácter de nueva línea del final de un registro de entrada
cuando es importante que el registro al final le pueda faltar ese carácter. En
modo párrafo (C<$/ = ''>), elimina todos los caracteres de nueva línea de la
cadena. En modo chupón (C<$/ = undef>) o en modo de registros de longitud fija
(L<C<$E<sol>>|perlvar/$E<sol>> es una referencia a un entero o algo parecido;
ver L<perlvar>), L<C<chomp>|/chomp VARIABLE> no elimina nada. Si se omite
VARIABLE, usa L<C<$_>|perlvar/$_>. Ejemplo:

    while (<>) {
        chomp;  # evitar \n en el último campo
        my @array = split(/:/);
        # ...
    }

lib/POD2/ES/perlop.pod  view on Meta::CPAN

que coincida con el principio de la cadena. Tenga en cuenta también que,
actualmente, C<\G> está sólo adecuadamente soportada cuando se fija al
comienzo del patrón.

Ejemplos:

    # contexto lista
    ($uno,$cinco,$quince) = (`uptime` =~ /(\d+\.\d+)/g);

    # contexto escalar
    local $/ = "";
    while ($parrafo = <>) {
	while ($parrafo =~ /\p{Ll}['")]*[.!?]+['")]*\s/g) {
	    $sentencias++;
	}
    }
    say $sentencias;

Aquí hay otra forma de buscar sentencias en un párrafo:

 my $sentencia_rx = qr{

lib/POD2/ES/perlop.pod  view on Meta::CPAN

                                # espacio en blanco
    (?<! \b [DMS]r  )           # pero no es una abreviatura conocida
    (?<! \b Mrs )
    (?<! \b Sra )
    (?<! \b St  )
    [.?!]                       # seguido por una sentencia
                                # terminada
    (?= $ | \s )                # delante de un final-de-cadena
                                # o espacio en blanco
 }sx;
 local $/ = "";
 while (my $parrafo = <>) {
    say "NUEVO PÁRRAFO";
    my $cuenta = 0;
    while ($parrafo =~ /($sentencia_rx)/g) {
        printf "\tnueva sentencia %d: <%s>\n", ++$cuenta, $1;
    }
 }

Aquí está cómo se usa C<m//gc> con C<\G>:



( run in 0.332 second using v1.01-cache-2.11-cpan-94b05bcf43c )