#! perl -slw use strict; my $dna = do{ local $/; }; $dna =~ tr[\n][]d; my$len = length $dna; my %counts; ++$counts{ substr $dna, $_, 1 } for 0 ..199; # output.txt file will be created in which all of your results will be stored. You can change the name of file as your wish. open(PAGE,">output.txt") || die"Can't open Outfile\n"; for my $offset ( 0 .. length( $dna )-200 ) { if ((($counts{'G'}+$counts{'C'})/(200)*100) > 40) { printf PAGE "range: %d .. %d A:%d C:%d G:%d T:%d G+C:%d GC%%:%d E:%d R:%.1f\n", $offset, $offset+199, @counts{ qw[ A C G T ] }, $counts{'G'}+$counts{'C'}, ($counts{'G'}+$counts{'C'})/(200)*100, ($len)*5/100, (($counts{'G'}+$counts{'C'})/(200)*100)/(($len)*5/100)*100; } --$counts{ substr $dna, $offset, 1 }; ++$counts{ substr $dna, $offset+200, 1 }; } print "The length of entire DNA sequence is = $len\n"; __DATA__ GATCTAAATGCTAGCTAGCTAGCTAGCTGGAATCCTCAATAGCTCAATCGATTCAATGCGCGCGTATAAG GGTAAGCGGTCCGCTACGATCCATCACATTCCACAATTAAAATTACCAAAATCGCATTCAAGGTCTCACA TAAAGAGTGCAGCTGCATCGATTGTAAATGCATAGATACATCATTAAATCTACAACACAGTTGACAAGAA CGTCAAAACCGTATTGTTTCAAAACTAAGGTCAAAAAAACCAAGCAGCATTTTGTTTTTGAAAATATACC CAAATATGTGCTAGCTACGACAAATAGCAATGTATTTATCCATAGCGATCGCGGACCTAACTTTCGCAAA AAATGCCAAGCCTAACCCAGACAAGACTCTCGCAATGAAATCGGAAAACAATAGCACTATGATGTATATT TCGTTCAGTTTTTGGTGAAAGAGCTCGAAGGTTTCATTAACGATAATCGCAAGGGCTAGCGAGCCTTTGG AAGCTGTCCTGTGACACGTTGACAATTCAATATATTACACTACATATTTTTACATATTATTTATATAATA TATAAGCATCGATGCAGCGAATCGTTCTTATTTCAATATGTACGAGTGTTTTGCGATACAAAATATCCCA ACGAGCACATTTCAGGGCATTTTATGAGACCGATCTGACGAGTCTGACGCTCGCAAAAGGCTTTTATGTT AAATGCAAATAAAAGATCGAGCAGTCTGACGTATACATGGAATTGCCTTCATTGCAAGAAAACAAATTTT CTCTAAACTGTCCTAACTGGCTGACTGATTGGTTAATAAACGCACAGAGTTAGAAAGCTGACACTTGAAC TTTAAGCAGCAGCGAGCAGCGTAATTTATATGATGAGGTCATGGAAATTTTACCGACATGTATGGTAAAT ACAAATTGTTTGGTAGTTCCGGTGCGCCTAAGACGCGTAGATTATCCGATCGGCTCTAAACTTATTTTCG