in reply to How to sort hash keys numerically?
A second question is that I am planning to run this script on a file that contain 10-15 million lines. Do you think this is the best way of doing it.
Code updated.
Maybe not. All your keys are numeric and chrM is only around 16k in length, so you can save space by using an array instead of a hash and the save time by not having to sort:
use warnings; use strict; use 5.010; my @pos; while(<DATA>){ my( $chr, $start, $end ) = split; $pos[ $_ ]++ for $start .. $end; } for my $pos ( 0 .. $#pos ) ){ next unless defined $pos[ $pos ]; say $pos,"\t", $pos[ $pos ]; }
However, this might exhuast your memory if you tried to run in on some of the larger genomes.
|
|---|