in reply to beginner - ordering tuples

If the file is like 7, 10\n, maybe
open(my $filehandle, '<', $filename) or die "error opening $filename: $!"; my @pairs = sort { $$a[0] <=> $$b[1] } map { chomp; [ split /\s*,\s*/ ] } grep { /\S/ } # skip empty lines <$filehandle>;

Replies are listed 'Best First'.
Re^2: beginner - ordering tuples
by Anonymous Monk on Nov 13, 2010 at 01:09 UTC
    I'm so much of a beginner I can't follow that. I will try and work it out but any help is appreciated.
      the input file isn't in that format. i will have the values in 2 variables called $a and $b after i have parsed the line and i know $b will be higher than a for every row.
        You might not want to use $a and $b, because those are built-in globals used by certain functions (eg sort).

        Assuming you're looping over each line:

        my @pairs; while (<$filehandle>) { # or whatever loop construct # parse line and set $foo and $bar here # for example: chomp; my ($foo, $bar) = /(\d+)/g; # add to array push @pairs, [ $foo, $bar ]; } # sort array # NB: these are the special $a and $b, not yours @pairs = sort { $$a[0] <=> $$b[0] } @pairs;