This is a slower and less readable version of what I posted 15 hours ago.
- $aoa[$i] (in $x < scalar($aoa[$i])) is buggy. It should be @{ $aoa[$i] }
- Your code (specifically your use of sort) fails when there are more than 10 columns in each row.
- Why do you hardcode "4" in one place but use "scalar(@aoa)" in another? That should tell you something's wrong.
- There's no reason to use a hash here. It's not appropriate, and it just slows things down for nothing.
- "hash" is an awful name for a variable.
- $x = $x + $y; can be written more concisely as $x += $y;.
- scalar(@aoa) can be written more concisely as @aoa if the context is already scalar.
- for (my $i=0; $i<@aoa; $i++) can be written more concisely as for my $i (0..$#aoa).
Finally, your post formatting is buggy. Put code and other preformatted data in <c>...</c> tags.