Hello raghuprasad241,

It seems that the values (i.e., the data in columns 1, 2, etc.) are independent of the keys (i.e., the data in column 0). If, in addition, the values are always in order, then the simplest approach may be to (1) read the data in as two arrays, one for keys and one for values; (2) sort the data in the values array; and then (3) print out the contents of each array, one element from each per line. For example:

#! perl use strict; use warnings; my (@keys, @vals); while (<DATA>) { my ($key, $val) = /^(.*?\S)(\s.*)$/s; push @keys, $key; push @vals, $val; } @vals = sort { mysort() } @vals; while (@keys) { my $key = shift @keys; my $val = shift @vals; print $key, $val; } sub mysort { my ($aa) = $a =~ /^\s*(\d+)/; my ($bb) = $b =~ /^\s*(\d+)/; return $aa <=> $bb; } __DATA__ 1014 1 10 1015 51 100 1016 11 50 1017 101 -

Output:

12:53 >perl 1568_SoPW.pl 1014 1 10 1015 11 50 1016 51 100 1017 101 - 12:54 >

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


In reply to Re: Sorting a matrix based on the values of columns by Athanasius
in thread Sorting a matrix based on the values of columns by raghuprasad241

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.