# show that sorting has changed from 5.6.1 to 5.8.8 use strict; use warnings; use Test::More tests => 1; # I would expect ties to come out in the order in which they are # received. 5.8.8 seems to do that, 5.6.1 does not. my @unordered = ( { pos => 3, val => 0 }, { pos => 5, val => 1 }, { pos => 4, val => 0 }, { pos => 1, val => -1 }, { pos => 2, val => -1 }, { pos => 6, val => 1 }, { pos => 0, val => -2 }, ); my @ordered = sort { $a->{pos} <=> $b->{pos} } @unordered; my @result = sort { $a->{val} <=> $b->{val} } @unordered; is_deeply( \@result, \@ordered ); diag("Your Perl is $]."); diag( "expected val: " . join( ",", map { $_->{val} } @ordered ) ); diag( " result val: " . join( ",", map { $_->{val} } @result ) ); diag( "expected pos: " . join( ",", map { $_->{pos} } @ordered ) ); diag( " result pos: " . join( ",", map { $_->{pos} } @result ) );