Undoubtedly not the best way of doing this, but here's one stab at it.
This assumes you have your data stored in an array as a single string,
rather than having an array of array pointers.

my @array = ('fred:lucy:24', 'john:jane:10', 'frank:mary:5');

@array = sort { my @a_vals = split (':', $a);
                my @b_vals = split (':', $b);
                $a_vals[2] <=> $b_vals[2]; } @array;

foreach my $string(@array) { print "$string\n"; }

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, January 29, 2003 11:50 AM
> To: [EMAIL PROTECTED]
> Subject: sorting thoughts
> 
> 
> Hi
> 
> just about to embark on a sorting routine, and I thought 
> before I spend
> ages(at my ability) I would see what thoughts you guys have on  this.
> 
> I have an array, each line contains fields seperated by ":"
> I want to sort the array numerically ascending by the last field.
> 
>  my thoughts are to split fields into seperate arrays, go 
> through the last
> array in a comparing process, moving each row index in the 
> original array
> to reflect the sort. ( I found this hard to explain)
> 
> Do any of you some tips as to how to approach this ??
> 
> eg
> contents of array1
> fred:lucy:24
> john:jane:10
> frank:mary:5
> 
> so I want to end up with
> frank:mary:5
> john:jane:10
> fred:lucy:24
> 
> Thanks - here's hoping..
> Steve
> 
> 
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to