my $med = median(@{$organisms{$organism}}); #bad form, masks %med declared in outer scope. Use a different name for this variable, eg. $med_calculated.
$med{$organism} = $med;
####
foreach $organism (sort {$number{$a} <=> $number{$b}} keys %organisms){
print "$organism:\t$number{$organism}\t$organisms{$organism}\t$med{$organism}\n" ;
}
####
use strict;
use warnings;
use Acme::Tools;
my (%count, %organisms, %med, %number);
my ($contig, $accession, $organism, $eval, $con_length, $map_length);
#my $ref_filelist = $ARGV[0];
#open(FILELIST, $ref_filelist )
# or die "Could not open Reference filelist...($!)";
print "Organism\tFrequency\tMedian_Eval\tMedian_Contig_Length\tMedian_Mapped_Length\n";
#while (){
while (){
( $contig, $accession, $organism, $eval, $con_length, $map_length ) = split ( '\t',);
#my $median = $eval[($#eval / 2)];
my $med_calculated = median(@{$organisms{$organism}});
$med{$organism} = $med_calculated;
#$organisms{$organism} = $eval;
my $number_calculated = ++$count{$organism};
$number{$organism} = $number_calculated;
}
foreach $organism (sort {$number{$a} <=> $number{$b}} keys %organisms){
print "$organism:\t$number{$organism}\t$organisms{$organism}\t$med{$organism}\n" ;
}
__DATA__
contig1 AC344 organism1 1e-1 122 45
contig1 AC344 organism1 1e-2 122 45
contig1 AC346 organism2 1e-102 122 46
contig1 Ac346 organism2 1e-100 122 46
contig1 Ac346 organism2 1e-114 122 46
contig1 Ac346 organism2 1e-111 122 46
contig2 NC333 organism3 1e-2 155 90
contig3 NC444 organism4 1 188 50
contig3 NC444 organism4 12 188 50