Hi,
@feld = ('bla1,bla,1','bla2,bla,4','bla3,bla,3','bla4,bla,2');
Dann gehe jedes Feld durch:
oder mach's einfacher (ungetestet):
my @sorted_feld = sort { (split(/,/,$a))[2] <=> (split(/,/,$b))[2] } @feld;
Man beachte, daß die Zahl der split()s exponentiell mit der Zahl der Elemente in @feld steigt... eventuell ist es besser, vorher einmal mit
for (my $i=0; $i<scalar @feld, $i++) {
my ($x, $y, $z) = split(/,/, $feld[$i]);
$feld[$i] = "$z,$x,$y";
}
ganz @feld zu bearbeiten, dann einfach nur noch simpel my @sorted_feld = sort @feld; dranzusetzen und das Array anschließend analog wieder zurückzuwandeln.
Cheatah
P.S.: Den zweiten Code kann man sicher mit map noch optimieren, da bin ich aber zu faul zu ;-)