in reply to Re^2: Sorting data structure
in thread Sorting data structure

Here is the entire loop:
for my $location (sort {$a cmp $b} keys %user_locations) { $worksheet->write($row++, $col, "$location ($user_locations{$loca +tion})", $format); my @sorted_users = sort { $users{$b}->{count} <=> $users{$a}->{count} } keys %users; for my $user (for my $user ((sort { $users{$b}->{count} <=> $users +{$a}->{count} } keys %users) { next unless $users{$user}->{suffix} eq $user_locations{$locati +on}; for (my $tmp=1; $tmp <= keys %sheet_layout; $tmp++) { $worksheet->write($row, $col++, $users{$user}->{$sheet_lay +out{$tmp}->[0]}, $format_r); } $col = 0; $row++; } $row++; }
I can't find the problem right now, maybe I should stare at it a while longer...

Replies are listed 'Best First'.
Re^4: Sorting data structure
by 5mi11er (Deacon) on Oct 14, 2005 at 18:55 UTC
    Ok, pointing out the obvious thing that jumps out at me, is this nasty line doing the right thing:
    for my $user (for my $user ((sort { $users{$b}->{count} <=> $users{$a} +->{count} } keys %users) {
    A nested for using the same variable $user? Yes, I realize they don't kill one another due to the scoping, provided you don't really care about the outer $user variable within the inner for, but that's really nasty.

    Looking just slightly more carefully, it looks like the outer for block is never started... Is it simply a cut and paste problem, or does the real code really look that way?

    -Scott