[Perl] Clasificaciones
Jose Antonio Galicia
jcgalici@cbbanorte.com.mx
Wed, 12 Jun 2002 12:12:10 -0500 (CDT)
On Wed, 12 Jun 2002, Salman PSL wrote:
> @ordenado =3D sort {($a =3D~ /(.*)\|(.*)/)[1] cmp ($b =3D~ /(.*)\|(.*)/=
)[1]} @desordenado;
> =BF Que estoy haciendo mal ? :-(
En una expresi=F3n regular el ".*" significa "hasta donde
puedas" por lo que se esta "tragando" m=E1s de lo que quieres
que se trage. Ve:
$ perl <<EOP
open F, "x";
@D=3D<F>;
close F;
@O =3D sort { ($a =3D~ /(.*?)\|(.*)/)[1] cmp ($b =3D~ /(.*?)\|(.*)/)[1] =
} @D;
print @O;
EOP
la "=FAnica" diferencia es que estoy limitando el alcance del
primer .* con un "?" para se detenga ante el primer "|" que
es exactamente lo que quieres hacer.
Saludos,
To=F1o
---
"No, `Eureka' is Greek for `This bath is too hot.'"
-- Dr. Who