que tiene esta pieza de la escritura:comportamiento extraño del tipo
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @arr = (
{
name => 'foo',
value => 123,
},
{
name => 'bar',
value => 'nan',
},
{
name => 'foobar',
value => 456,
},
);
@arr = sort {$a->{value} <=> $b->{value} } @arr;
print Dumper(\@arr);
no tengo ningún problema en Windows XP/Strawberry Perl 5.10.1
ya sea Linux i386 2.6.12-1/Perl v5.8.5 construido para i386-linux-hilos múltiples,
pero bajo Linux 2.6.18-53/Perl v5.8.8 construido para x86_64-linux-hilos múltiples, que recibió el mensaje de error:
Sort subroutine didn't return a numeric value at testsort.pl line 21.
¿Qué sucede y cómo puedo solucionarlo?
¿Ocurre lo mismo si lo simplifica así? @arr = sort {$ a <=> $ b} (123, 'nan', 456); – wdebeaum
@wdebeaum: no hay errores en un trazador de líneas, pero no ordena nada en x86_64, mientras que está bien en Windows XP y i386 – Toto