1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#!/usr/bin/perl
use strict;
use warnings;
my %hash = ("gi|19612490|gb|AAH49588.1|__116" => "A",
"gi|19612490|gb|AAH49588.1|__115" => "B",
"gi|19612490|gb|AAH49588.1|__114" => "C",
"gi|19612490|gb|AAH49588.1|__113" => "D",
"gi|19612490|gb|AAH49588.1|__112" => "E",
"gi|19612490|gb|AAH49588.1|__111" => "F",
"gi|19612490|gb|AAH49588.1|__110" => "G",
"gi|19612490|gb|AAH49588.1|__11" => "H",
"hi|19612490|gb|AAH49588.1|__109" => "I",
"hi|19612490|gb|AAH49588.1|__108" => "J",
"hi|19612490|gb|AAH49588.1|__107" => "K",
"hi|19612490|gb|AAH49588.1|__106" => "L",
"hi|19612490|gb|AAH49588.1|__105" => "M");
sub byseq {
my ($a1,$a2) = split /___/,$a; ## split permet de separer avant ($a1) et apres ($a2) __ de $a, $a etant la cle du hash
my ($b1,$b2) = split /___/,$b; ## split permet de separer avant ($b1) et apres ($b2) __ de $b, $b etant la cle du hash
if ($a1 ne $b1) { return ($a1 cmp $b1); }
return ($a2-$b2);
}
for my $key (reverse (sort { byseq ($a, $b) } keys (%hash))) {
print "$key\t\t$hash{$key}\n";
} |
Partager