Imtiaz Ahmad wrote: > > Hi- Hello,
> Lets say if we have an ARRAY @array_1 with following values: > > 31472 468X60 1.49 > 31473 468X60 2.18 > 31488 180X60 1.39 > 31476 468X60 1.58 > 33472 120X60 2.49 > 32473 468X60 4.38 > > ################################################################ > for($i=0;$i<$#sql_results1;$i++) > { > ($campid,$szname,$avg) = split(/\s\|\s/,$sql_results1[$i]); > $campid =~ s/\|//g; > $szname =~ s/\|//g; > $avg =~ s/\|//g; > push @array_1, [$campid, $szname, $avg]; > } > ################################################################ > And I want to sort @array_1 by szname which is the second column. > How do I do it so that it includes all the column when sorting. > > So the end result should be: > 33472 120X60 2.49 > 31488 180X60 1.39 > 31472 468X60 1.49 > 31473 468X60 2.18 > 31476 468X60 1.58 > 32473 468X60 4.38 > > thanks. > > Can't use ORDER BY clause in SQL because of some limitation of SQL --- And > other way is > going to require significant amount of work. chomp( my @array = <DATA> ); print "$_\n" for @array; print "\n"; my @sorted = map { (split/\0/)[1] } sort map { "@{[(split)[1,0,2]]}\0$_" } @array; print "$_\n" for @sorted; __DATA__ 31472 468X60 1.49 31473 468X60 2.18 31488 180X60 1.39 31476 468X60 1.58 33472 120X60 2.49 32473 468X60 4.38 John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]