consulta

Adriano Ferreira a.r.ferreira en gmail.com
Lun Ago 24 14:25:25 PDT 2009


2009/8/24 Horacio Hidalgo <horacio.hidalgo at gmail.com>

> buenas,
>
> estaba trabajando en una expresion regular para hacer un split, sin embargo
> me esta generando valores en el array indefinidos, lo que tuve que hacer fue
> filtrar los resultados que populan el array con grep, alguna idea de como se
> podria eliminar esto de una forma mas "elegante"?
>
> Saludos,
> Horacio
>
> use strict;
> use warnings;
> use feature ':5.10';
> my $var = "vivo \"en un bonito barrio\" en costa rica";
> say($var);
> my @splitted = grep{ defined $_} split(m/\s+(\".*\")\s+|\s+/,$var);
> #my @splitted = split(m/\s+/,$var);
> print $#splitted ."\n";
> for(@splitted)
> {
>     print;
>     print "\n";
> }
> print "\n";
>
> __
> Costarica-pm at pm.org
> http://mail.pm.org/mailman/listinfo/costarica-pm
>
>
Es muy dificile de hacer lo que quieres con un "split" - he experimentado
con el novo "branch reset pattern"   ?|   pero sin suceso.

Puedes hacer solamente:

@fields =   $var =~ /"[^"]*"|\S+/g;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/costarica-pm/attachments/20090824/43322537/attachment.html>


Más información sobre la lista de distribución Costarica-pm