use strict; use warnings; my $dir="G:/¿ÆÑÐ/methy-evo/20140624/"; my %gene_var; open GENE_VAR,$dir."gene_var_new.txt"; while(){ chomp; my ($gene,$var)=split/\s+/; $gene_var{$gene}=$var; } close GENE_VAR; open SORTED,">$dir"."gene_var_sorted_new.txt"; foreach my $key(sort {$gene_var{$a} <=> $gene_var{$b}} keys %gene_var){ print SORTED "$key\t$gene_var{$key}\n"; } close SORTED; my $top25=int(0.25*21231)+1; my $top75=int(0.75*21231)+1; my $i=1; open IN,$dir."gene_var_sorted_new.txt"; open SMG25,">$dir"."smg_top20.txt"; open FMG25,">$dir"."fmg_bot20.txt"; while(){ chomp; my @line=split/\s+/; if($i<=$top25){ print SMG25 "$line[0]\n"; } if($i>=$top75){ print FMG25 "$line[0]\n"; } $i++; } close IN; close SMG25; close FMG25;