in reply to complex hash sort

I'm curious if you are required to use fetchall_hashref or if you can use fetchall_arrayref instead.

For example, to get an array of hashes containing the rows in the same order they are produced by your query, you could do this:

my $clients = $get->fetchall_arrayref({});

Now $clients is a reference to an array, sorted by last name, where each element is a hash containing the row data.

If you want a list of IDs ordered by last name:

my @ids = map { $_->{id} } @$clients;

If you want a hash that maps IDs to clients:

my %client_for = map { $_->{id} => $_ } @$clients; # $client_for->{1}->{lastname} ...

Let me know if this helps and if you have any more questions.