> lt, gt etc. are used for string comparisons. Change 'lt' to < and 'gt' to > > and your code should work. >
You're right, but this script was a simplification of a bigger one where '>' didn't work (my mistake to not spot the difference...). Here is a more 'real' situation: Input file: 4635a 1e-180 BL0976 4635a 0 BL0978 4635a 1e-10 BL1343 4635a 8e-86 BL1774 4635a 6e-18 Blon1206 4635a 1e-123 BL1165 4635a 5 BL0978 4635a 50 BL0978 Script: while (<>) { @row = (split /\t/); ($contig,$E_value,$locus_tag) = (@row); if ($E_value < 1e-50) { print "$E_value\t SMALL\n"; } elsif (($E_value > 1e-50) && $E_value < 5) { print "$E_value\t BIGGER\n"; } elsif ($_ > 5) { print "$E_value\t BIGGEST\n"; } } And I then get this: 1e-180 SMALL 0 SMALL 1e-10 BIGGER 8e-86 SMALL 6e-18 BIGGER 1e-123 SMALL Argument "\x{34}\x{36}..." isn't numeric in numeric gt (>) at /home/marcus/Scripts/string2num.pl line 7, <> line 7. 5 BIGGEST Argument "\x{34}\x{36}..." isn't numeric in numeric gt (>) at /home/marcus/Scripts/string2num.pl line 7, <> line 8. 50 BIGGEST Thus, the operator isn't always correct and is not very accepted by perl Do you know the error? Marcus -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]