#!/usr/bin/perl use strict; use warnings; # $arr[0][$x] = 7 # $arr[1][$x] = 6 # $arr[2][$x] = 10 my @arr = ( [ 7, 'foo' ], [ 6, 'bar' ], [ 10, 'foobar' ], ); my $x = 0; # sortierte IDs der "ersten" Array-Ebene mittels Schwartzscher Transformation my @sortid = map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, $arr[$_]->[$x] ] } 0 .. $#arr; # Ausgabe der IDs print "@sortid", $/; # prints: 1 0 2 # Neusortierung des Array @arr = @arr[@sortid];