<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div>Boa noite mongers.</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;">Graças a sugestão do nosso amigo Felipe Leprevost, entrei no roseland.info e comecei a brincar.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;">O primeiro problema foi contar o número de ocorrencias numa string.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color:
 transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;">Eis o código que eu utilizei.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><br></div><pre style="font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); line-height: 18px;"><div class="line" id="LC1" style="padding-left: 10px;"><span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">#!/usr/bin/env perl</span></div><div class="line" id="LC2" style="padding-left: 10px;"><br></div><div class="line" id="LC3" style="padding-left: 10px;"><span class="k" style="font-weight: bold;">use</span> <span class="n">strict</span><span
 class="p">;</span></div><div class="line" id="LC4" style="padding-left: 10px;"><span class="k" style="font-weight: bold;">use</span> <span class="n">warnings</span><span class="p">;</span></div><div class="line" id="LC5" style="padding-left: 10px;"><br></div><div class="line" id="LC6" style="padding-left: 10px;"><span class="nb" style="color: rgb(0, 134, 179);">open</span> <span class="n">IFILE</span><span class="p">,</span> <span class="s" style="color: rgb(221, 17, 68);">'<'</span><span class="p">,</span> <span class="s" style="color: rgb(221, 17, 68);">'../../data/string/counting.txt'</span> <span class="ow" style="font-weight: bold;">or</span> <span class="nb" style="color: rgb(0, 134, 179);">die</span><span class="p">(</span><span class="s" style="color: rgb(221, 17, 68);">'File not found'</span><span class="p">);</span></div><div class="line" id="LC7" style="padding-left: 10px;"><br></div><div class="line" id="LC8" style="padding-left:
 10px;"><span class="k" style="font-weight: bold;">my</span> <span class="nv" style="color: rgb(0, 128, 128);">@nucleotides</span> <span class="o" style="font-weight: bold;">=</span> <span class="sx" style="color: rgb(221, 17, 68);">qw(0 0 0 0)</span><span class="p">;</span></div><div class="line" id="LC9" style="padding-left: 10px;"><br></div><div class="line" id="LC10" style="padding-left: 10px;"><span class="k" style="font-weight: bold;">while</span> <span class="p">(</span><span class="k" style="font-weight: bold;">my</span> <span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=</span> <span class="sr" style="color: rgb(0, 153, 38);"><IFILE></span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC11" style="padding-left: 10px;">  <span class="nb" style="color: rgb(0, 134, 179);">chomp</span> <span class="nv" style="color: rgb(0, 128,
 128);">$line</span><span class="p">;</span></div><div class="line" id="LC12" style="padding-left: 10px;">  </div><div class="line" id="LC13" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">0</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0, 153, 38);">/A/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC14" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153,
 153);">1</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0, 153, 38);">/C/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC15" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">2</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0,
 153, 38);">/G/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC16" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">3</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0, 153, 38);">/T/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC17" style="padding-left: 10px;"><span class="p">}</span></div><div class="line" id="LC18" style="padding-left: 10px;"><span class="nb" style="color: rgb(0, 134, 179);">close</span> <span
 class="n">IFILE</span><span class="p">;</span></div><div class="line" id="LC19" style="padding-left: 10px;"><br></div><div class="line" id="LC20" style="padding-left: 10px;"><span class="nb" style="color: rgb(0, 134, 179);">open</span> <span class="n">OFILE</span><span class="p">,</span> <span class="s" style="color: rgb(221, 17, 68);">'>'</span><span class="p">,</span> <span class="s" style="color: rgb(221, 17, 68);">'../../output/string/counting.txt'</span> <span class="ow" style="font-weight: bold;">or</span> <span class="nb" style="color: rgb(0, 134, 179);">die</span><span class="p">(</span><span class="s" style="color: rgb(221, 17, 68);">'Can\'t create file'</span><span class="p">);</span></div><div class="line" id="LC21" style="padding-left: 10px;"><span class="k" style="font-weight: bold;">print</span> <span class="n">OFILE</span> <span class="nb" style="color: rgb(0, 134, 179);">join</span><span class="p">(</span><span class="s" style="color:
 rgb(221, 17, 68);">" "</span><span class="p">,</span> <span class="nv" style="color: rgb(0, 128, 128);">@nucleotides</span><span class="p">);</span></div><div class="line" id="LC22" style="padding-left: 10px;"><span class="nb" style="color: rgb(0, 134, 179);">close</span> <span class="n">OFILE</span><span class="p">;</span></div><div class="line" id="LC22" style="padding-left: 10px;"><span class="p"><br></span></div><div class="line" id="LC22" style="padding-left: 10px;"><span class="p"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;">O problema é que não estou satisfeito com o código na hora que eu somo o numero do ocorrencias nos indices da array:</span><br></span></div><div class="line" id="LC22" style="padding-left: 10px;"><span class="p"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px;
 line-height: normal; white-space: normal;"><br></span></span></div><div class="line" id="LC22" style="padding-left: 10px;"><span class="p"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;"><pre style="font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); line-height: 18px;"><div class="line" id="LC13" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">0</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span
 class="sr" style="color: rgb(0, 153, 38);">/A/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC14" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">1</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0, 153, 38);">/C/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC15" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color:
 rgb(0, 153, 153);">2</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr" style="color: rgb(0, 153, 38);">/G/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC16" style="padding-left: 10px;">  <span class="nv" style="color: rgb(0, 128, 128);">$nucleotides</span><span class="p">[</span><span class="mi" style="color: rgb(0, 153, 153);">3</span><span class="p">]</span> <span class="o" style="font-weight: bold;">+=</span> <span class="p">(</span><span class="nv" style="color: rgb(0, 128, 128);">$line</span> <span class="o" style="font-weight: bold;">=~</span> <span class="nb" style="color: rgb(0, 134, 179);">tr</span><span class="sr"
 style="color: rgb(0, 153, 38);">/T/g</span><span class="o" style="font-weight: bold;">/</span><span class="p">);</span></div><div class="line" id="LC16" style="padding-left: 10px;"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;"><br></span></div><div class="line" id="LC16" style="padding-left: 10px;"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;">Existe uma forma melhor para fazer isso em uma linha?</span></div><div class="line" id="LC16" style="padding-left: 10px;"><span style="color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;"><br></span></div><div class="line" id="LC16" style="padding-left: 10px;"><span style="color: rgb(0, 0, 0); font-family: 'times new
 roman', 'new york', times, serif; font-size: 16px; line-height: normal; white-space: normal;">[]'s</span></div></pre></span></span></div></pre></div></body></html>