Shiping Wang wrote: > Hi David, thanks for your response. > > My concern is that if the data has hundreds columns (which the order > information I can get from another array or file) need to be rearranged, > how can I do it. > > Here is my test program, it seems working. Any suggestion or concern??? > > Shiping > _______________________________________________________________________________________________________________ > #!/usr/bin/perl > # sortColumns.pl > use warnings; > use strict; > use Math::Matrix;
[snip] i have never used Math::Matrix so i am not sure how it behave or works but your code seems overly complicated for such a simple problem. even there are unknown number of columns, as long as the first line (header) is there to suggest the right order, you don't need to sort anything or do matrix operation. for example, the following sorts the file and it doesn't need to know how many columns to sort. you can have hundreds or thousands of columns: #!/usr/bin/perl -w use strict; my $j = 0; my %i = map{$_ => $j++} grep $_, split(/\D+/,my $line = <DATA>); my @c = sort {$a <=> $b} keys %i; #-- #-- header #-- print join("\t",(split /\s+/,$line)[EMAIL PROTECTED]@c}]),"\n"; #-- #-- the rest #-- while(<DATA>){ print join("\t",(split)[EMAIL PROTECTED]@c}]),"\n"; } __DATA__ col1 col4 col5 col2 col6 col3 Abc 12.8 8 left 1 15.7 Def 13.8 9 top 0 19.7 gef 14.8 9 left 0 19.7 Dgf 12.3 9 right 4 99.6 cef 16.8 4 right 0 89.7 baf 32.8 7 bottom 5 79.8 efg 16.8 5 right 0 56.7 etg 12.8 2 left 7 34.7 __END__ prints: col1 col2 col3 col4 col5 col6 Abc left 15.7 12.8 8 1 Def top 19.7 13.8 9 0 gef left 19.7 14.8 9 0 Dgf right 99.6 12.3 9 4 cef right 89.7 16.8 4 0 baf bottom 79.8 32.8 7 5 efg right 56.7 16.8 5 0 etg left 34.7 12.8 2 7 david -- sub'_{print"@_ ";* \ = * __ ,\ & \} sub'__{print"@_ ";* \ = * ___ ,\ & \} sub'___{print"@_ ";* \ = * ____ ,\ & \} sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>