my @sorted=do{ my $n; my %stuff=map { func($_) . ':' . $n++ => $_ } @unsrt; @stuff{sort keys %stuff}; };