my @colors = qw/grey purple pink blue turquoise green chartreuse yellow gold orange/; for my $score () { chomp $score; my ($color, $label); if ( $score > 0 ) { my $power = int( - log( $score ) / log 10 ); my $tens_place = int( $power / 10 ); $color = $colors[ $tens_place ]; $label = sprintf( "1e-%d0 < E < 1e-%d0", $tens_place+1, $tens_place ); } elsif ( $score eq 'NoHit' ) { $color = 'black'; $label = 'No Hits'; } else { $color = 'red'; $label = 'E = 0'; } print "$score ==> $color ==> $label\n"; } __DATA__ 1e-10 1e-33 1e-93 NoHit 1e-54 1e-3 0 1e-99 #### 1e-10 ==> purple ==> 1e-20 < E < 1e-10 1e-33 ==> blue ==> 1e-40 < E < 1e-30 1e-93 ==> orange ==> 1e-100 < E < 1e-90 NoHit ==> black ==> No Hits 1e-54 ==> green ==> 1e-60 < E < 1e-50 1e-3 ==> grey ==> 1e-10 < E < 1e-00 0 ==> red ==> E = 0 1e-99 ==> orange ==> 1e-100 < E < 1e-90