#! /usr/local/bin/perl -w use strict; my $num_of_params; $num_of_params = @ARGV; if ($num_of_params < 2) { die ("\n You haven't entered enough parameters \n"); } open (BLASTX, $ARGV[0]) or die "unable to open file"; open (OUTFILE, ">$ARGV[1]"); my $line; my @array; my $number; my $count=0; my @frequency; my %count; my @ordered; while () { $line = $_; chomp ($line); @array = (); @array = split (/\s+/, $line); @frequency = $array[0]; sub odd_median { @frequency = shift; @array = sort @frequency; return $array[(@array - (0,0,1,0) [@array & 3]) /2]; } sub mode { @frequency = shift; my (%count, @result); foreach (@frequency) { $count{$_}++; } foreach (sort { $count{$b} <=> $count{$a} } keys %count) { last if @result && $count{$_} != $count{$result[0]}; push (@result, $_); } return odd_median \@result; } } close OUTFILE;