[Programación] Re: [Programación] Duda en como lle
var de C a perl... (función anóni
ma)
Nicolás Aimetti
programacion@lugro.org.ar
Tue, 13 Dec 2005 16:04:21 +0000
Buenas...
@C = sort { $a->[0] cmp $b->[0] or $a->[1] cmp $b->[1] } @C;
El OR (ya sea el 'or' o el '||', son comandos equivalentes pero con
distinta precedencia) es ansioso, por tanto si el primer operando evalua
a true devuelve el _valor_del_mismo_, sino devulve el valor del segundo.
Los parentesis no son necesarios, pero pueden agregarse...
@C = sort { ($a->[0] cmp $b->[0]) or ($a->[1] cmp $b->[1]) } @C;
Saludos,
Nicolás.
> Holas... Abusando de vuestro conocimiento... supongamos que tengo el
> arreglo @C con dos campos de los cuales puede haber valores repetidos...
> ahora bien el ordenamiento...
>
> @C=sort{$a->[0] cmp $b->[0]} @C;
>
> lexicográfico en caso de empate en el campo uno el campo dos también
> debería ser ordenado lexicográficamente... eso en C yo lo resolví con
> esto...
>
> int comp_tema(const void *c1,const void *c2)
> {
> struct mail r1,r2;
> int res;
> r1=*(struct mail*)c1;
> r2=*(struct mail*)c2;
> if((res=strcmp(r1.tema,r2.tema))==0)
> return strcmp(r1.autor,r2.autor);
> return res;
> }
>
> Como se traslada esto a una función anónima para el "sort"... ?
>
> Saludos.