in reply to How do you sort a hash of array refs?

Well normally for something like this I would arrange to have an array of hash refs:
my @array = ( {TYPE => "hole", SIZE => 126, STEP => "pcb", COMP => "none"}, {TYPE => "hole", SIZE => 93, STEP => "pcb", COMP => "none"}, {TYPE => "chain", SIZE => 96, STEP => "array", COMP => "right"}, {TYPE => "slot", SIZE => 130, STEP => "panel", COMP => "left"}, );
and now sorting it is as easy as:
@sorted = sort {$a->{SIZE} <=> $b->{SIZE}} @array;
This kind of design is better for a number of reasons. But still in your case you have an unfriendly data structure for the operation. Well here is a way to do this:
my @indices = sort {$hash{SIZE}[$a] <=> $hash{SIZE}[$b]} 0..$#{$hash{S +IZE}}; foreach my $key (keys %hash) { @{$hash{$key}} = @{$hash{$key}}[@indices]; # Slice }
But honest, reversing the structure of your data structure now is advised if at all possible.