# library sort in Perl
# written Oct 02 by Ulrich Stern

{
  package Range;
  sub new {
    my ($class, $lb, $ub) = @_;
    return bless { lb => $lb, ub => $ub }, $class;
  }
  sub toString { my $s = shift; return "[$$s{lb},$$s{ub}]"; }
}

sub compLB { $$a{lb} <=> $$b{lb} }

sub compUB { $$a{ub} <=> $$b{ub} }

sub main
{
  my $N = 2000000;
  my @a = ();

  for (my $i=0; $i<$N; $i++) {
    $a[$i] = new Range($i*7%1000, $i*13%1000);
  }

  print "sorting $N Ranges...\n";

  @a = sort compLB @a;
  @a = sort compUB @a;

  print "done\n";
}

main();

