Hmm,<div>você realmente quer a saida na tela formatada ? um PDF não seria mais bontinho?! =S</div><div><br></div><div>Você pode jogar numa array, depois contar os caracteres do nome (lenght) e somar 2 (o espaço e a virgula) e depois é so você printar na sequencia.</div>

<div><br></div><div>Fiz o código usando duas arrays e formantando com sprintf com duas posições:<br><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace" size="1"><div>use strict;</div><div>use warnings;</div><div><br></div><div>my $nomes = {};</div><div><br></div><div>open(my $fh, &#39;&lt;&#39;, $ARGV[0]);</div>

<div><br></div><div>while (my $linha = &lt;$fh&gt;){</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>my ($nome, $nota_a, $nota_b) = split(/\s*\,\s*/, $linha);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>$nome = uc $nome;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$nota_b =~ s/\s+//;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$nota_a = sprintf(&#39;%02d&#39;, $nota_a);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>$nota_b = sprintf(&#39;%02d&#39;, $nota_b);</div><div> </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>push(@{$nomes-&gt;{$nome}{a}}, $nota_a);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>push(@{$nomes-&gt;{$nome}{b}}, $nota_b);</div><div>}</div><div><br></div><div>foreach (sort keys %$nomes){</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>print $_ . &#39; &#39; . join(&#39;, &#39;, @{$nomes-&gt;{$_}{a}}) . &quot;\n&quot; . (&#39; &#39; x (length($_) + 1)) . join(&#39;, &#39;, @{$nomes-&gt;{$_}{b}}) . &quot;\n&quot;;</div>

<div>}</div><div><br></div></font></div></div></div></blockquote><div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">JOAO 10, 10, 08</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">     15, 10, 09</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">MARIA 07, 06, 04</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      09, 09, 10</font></div><div><br></div>

<div class="gmail_quote">2011/2/22 Leonardo Gerheim <span dir="ltr">&lt;<a href="mailto:general_andrade@yahoo.com.br">general_andrade@yahoo.com.br</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><div>A resposta do Fernando foi muito d+, Show de bola mesmo.<br><br>    Mas devido a forma que chegou o email para vocês, acho que não entenderam como deveria ser a disposição das notas na saída, porque dessa forma que vocês fizeram eu também fiz, não tão impressionantemente em uma linha.<br>

    A disposição das notas dever ser a nota A (NEGRITO) em cima na nota B (NORMAL) assim:<br><br>INPUT:<br><br>joao,<span style="font-weight:bold">1</span>,1<br>joao,<span style="font-weight:bold">2</span>,1<br>joao,<span style="font-weight:bold">1</span>,2<br>

maria,<span style="font-weight:bold">1</span>,1<br>maria,<span style="font-weight:bold">2</span>,1<br>maria,<span style="font-weight:bold">1</span>,2<br><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:10pt">

OUTPUT:<br><br>joao =&gt; <span style="font-weight:bold">1</span>,<span style="font-weight:bold">2</span>,<span style="font-weight:bold">1</span><br>            1,1,2<br><br>maria =&gt; <span style="font-weight:bold">1</span>,<span style="font-weight:bold">2</span>,<span style="font-weight:bold">1</span><br>


              1,1,2<br><br><br>    Entenderam? Por isso perguntei como faria para avançar e recuar uma linha.<br>    Vlw pela força até agora.<br><br><br><div style="font-family:times new roman,new york,times,serif;font-size:12pt">

<font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight:bold">De:</span></b> Renato Santos &lt;<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>&gt;<div class="im"><br><b><span style="font-weight:bold">Para:</span></b> Cascavel Perl Mongers &lt;<a href="mailto:cascavel-pm@pm.org" target="_blank">cascavel-pm@pm.org</a>&gt;<br>

</div><b><span style="font-weight:bold">Enviadas:</span></b> Terça-feira, 22 de Fevereiro de 2011 10:40:37<br><b><span style="font-weight:bold">Assunto:</span></b> Re: [Cascavel-pm] Res: Acesso aleatório à arquivos<br></font><div>

<div></div><div class="h5"><br>Fernando, funcionou!<blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px"><div><div>joao =&gt; 10, 15, 10, 10,
 8, 9</div></div><div><div>maria =&gt; 7, 9, 6, 9, 4, 10</div></div>

</blockquote><div><div><br></div><div><br></div><div>O que o perl (GOLF =P) do Fernando faz é utilizar os argumentos do perl já dizendo que é para ler um arquivo (-n) separar por virgula (-F,) jogando cada item da linha para a @F (-a) remove o &quot;enter&quot; em cada linha (usando - l sem passar nenhum código) e o código em si, -e .</div>



<div><br></div><div>Coragem escrever isso no celular eim! Aja paciencia!</div><div><br></div><div><br></div><div>ps: legal o uso do END {}, nunca tinha pensando nisso.</div><br><div class="gmail_quote">2011/2/22 Fernando Oliveira <span dir="ltr">&lt;<a rel="nofollow" href="mailto:fernandocorrea@gmail.com" target="_blank">fernandocorrea@gmail.com</a>&gt;</span><br>



<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"><p>Não é q faltou o for?! Pq ninguem me avisou?!</p>
<p></p><div>Em 22/02/2011 10:17, &quot;Fernando Oliveira&quot; &lt;<a rel="nofollow" href="mailto:fernandocorrea@gmail.com" target="_blank">fernandocorrea@gmail.com</a>&gt; escreveu:<br>
&gt;<br></div>
perl -F, -nale &#39;push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print &quot;$_ =&gt; &quot;, join &quot;, &quot;, @{ $pessoa{$_} } for keys %pessoa}&#39; arquivo.txt<div><div></div><div><br>
&gt;<br>
&gt; Codigo escrito no cel e não testado!<br>
&gt; GOLF?!<br>
&gt;<br>
&gt; Em 22/02/2011 09:36, &quot;Leonardo Gerheim&quot; &lt;<a rel="nofollow" href="mailto:general_andrade@yahoo.com.br" target="_blank">general_andrade@yahoo.com.br</a>&gt; escreveu:<br>
&gt;<br>
&gt; &gt; Agradeço à todos pelas respostas. Mas realmente não consegui me expressar, <br>
&gt; &gt; como coloquei um exemplo não específico ficou realmente complicado o <br>
&gt; &gt; entendimento. A minha intenção é a seguinte:<br>
&gt; &gt; Eu quero poder movimentar dentro do arquivo, ou seja, avançar e recuar uma <br>
&gt; &gt; uma linha do arquivo.<br>
&gt; &gt; <br>
&gt; &gt; ex de INPUT:<br>
&gt; &gt; <br>
&gt; &gt; joao,10,15<br>
&gt; &gt; joao,10,10 <br>
&gt; &gt; joao,8,9<br>
&gt; &gt; maria,7,9<br>
&gt; &gt; maria,6,9<br>
&gt; &gt; maria,4,10<br>
&gt; &gt; <br>
&gt; &gt; onde temos respectivamente o nome do aluno a nota A e a nota B, mas queremos <br>
&gt; &gt; gerar um OUTPUT:<br>
&gt; &gt; <br>
&gt; &gt; joao 10,10,8<br>
&gt; &gt; 15,10,9<br>
&gt; &gt; maria 7,6,4 <br>
&gt; &gt; 9,9,10<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Ou seja, uma nota após a outra.<br>
&gt; &gt; <br>
&gt; &gt; Para isso, pensei em ler a primeira linha, imprimir as notas notas uma <br>
&gt; &gt; embaixo da outra, logoa após isso teria que retornar à primneira linha para <br>
&gt; &gt; imprimir o segundo conjunto de notas, enquanto o nome do aluno for o mesmo. O <br>
&gt; &gt; que não consegui fazer é essa parte de movimentar dentro do arquivo, avançando e <br>
&gt; &gt; recuando em arquivos que tenham registros de tamanho diferente.<br>
&gt; &gt; Caso existe um algoritmo mais simples por for me ajudem a montá-lo, mas de <br>
&gt; &gt; qualquer forma me expliquei como avançar e recuar linhas.<br>
&gt; &gt; <br>
&gt; &gt; Att.<br>
&gt; &gt; <br>
&gt; &gt; P.S: A solução do Eden na sua última resposta resolveu a última questão, eu que <br>
&gt; &gt; me expressei totalmente mal.<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; ________________________________<br>
&gt; &gt; De: Eden Cardim &lt;<a rel="nofollow" href="mailto:edencardim@gmail.com" target="_blank">edencardim@gmail.com</a>&gt;<br>
&gt; &gt; Para: Cascavel Perl Mongers &lt;<a rel="nofollow" href="mailto:cascavel-pm@pm.org" target="_blank">cascavel-pm@pm.org</a>&gt;<br>
&gt; &gt; Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35<br>
&gt; &gt; Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos<br>
&gt; &gt; <br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; &quot;Leonardo&quot; == Leonardo Gerheim &lt;<a rel="nofollow" href="mailto:general_andrade@yahoo.com.br" target="_blank">general_andrade@yahoo.com.br</a>&gt; writes:<br>
&gt; &gt; <br>
&gt; &gt; Leonardo&gt; Olá pessoal, Preciso ler um arquivo e quando em uma<br>
&gt; &gt; Leonardo&gt; determinada linha contiver um valor, ele pular para a<br>
&gt; &gt; Leonardo&gt; próxima linha e quando encontrar um segundo valor não<br>
&gt; &gt; Leonardo&gt; imprimir mais nada, como no exemplo abaixo:<br>
&gt; &gt; <br>
&gt; &gt; Não ficou claro o que você quer aqui, mostra um exemplo da entrada e da<br>
&gt; &gt; saída esperada.<br>
&gt; &gt; <br>
&gt; &gt; Leonardo&gt; joao- não imprimir<br>
&gt; &gt; Leonardo&gt; maria- não imprimir<br>
&gt; &gt; Leonardo&gt; antonio- não imprimir<br>
&gt; &gt; Leonardo&gt; a- não imprimir<br>
&gt; &gt; Leonardo&gt; linguagem- IMPRIMIR<br>
&gt; &gt; Leonardo&gt; programacao- IMPRIMIR<br>
&gt; &gt; Leonardo&gt; b- não imprimir<br>
&gt; &gt; Leonardo&gt; elizabeth- não imprimir<br>
&gt; &gt; Leonardo&gt; kenia- não imprimir<br>
&gt; &gt; <br>
&gt; &gt; Isso é a entrada ou a saída do programa?<br>
&gt; &gt; grep não resolve?<br>
&gt; &gt; ,----[ cat test_data ]<br>
&gt; &gt; | joao<br>
&gt; &gt; | maria<br>
&gt; &gt; | antonio<br>
&gt; &gt; | a<br>
&gt; &gt; | linguagem<br>
&gt; &gt; | programacao<br>
&gt; &gt; | b<br>
&gt; &gt; | elizabeth<br>
&gt; &gt; | kenia<br>
&gt; &gt; `----<br>
&gt; &gt; ,----[ cat test_data | grep &quot;linguagem\|programacao&quot; ]<br>
&gt; &gt; | linguagem<br>
&gt; &gt; | programacao<br>
&gt; &gt; `----<br>
&gt; &gt; <br>
&gt; &gt; Leonardo&gt; Eu consegui fazer um script para isso, entretanto<br>
&gt; &gt; Leonardo&gt; somente consegui que ele funcione, quando o amanho dos<br>
&gt; &gt; Leonardo&gt; registros são iguais. Como faço para resolver esse<br>
&gt; &gt; Leonardo&gt; problema tendo um arquivo com registros de tamnho<br>
&gt; &gt; Leonardo&gt; diferente?<br>
&gt; &gt; <br>
&gt; &gt; Se você mostrar o código, com um exemplo da execução, fica mais fácil te<br>
&gt; &gt; ajudar.<br>
&gt; &gt; <br>
&gt; &gt; -- <br>
&gt; &gt; Eden Cardim<br>
&gt; &gt; Software Engineer<br>
&gt; &gt; +55 73 9986-3963<br>
&gt; &gt; <a rel="nofollow" href="http://edencardim.com" target="_blank">edencardim.com</a><br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Cascavel-pm mailing list<br>
&gt; &gt; <a rel="nofollow" href="mailto:Cascavel-pm@pm.org" target="_blank">Cascavel-pm@pm.org</a><br>
&gt; &gt; <a rel="nofollow" href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
</div></div><p></p>
<br>_______________________________________________<br>
Cascavel-pm mailing list<br>
<a rel="nofollow" href="mailto:Cascavel-pm@pm.org" target="_blank">Cascavel-pm@pm.org</a><br>
<a rel="nofollow" href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Renato Santos<br><a rel="nofollow" href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>




</div>
</div></div></div></div>
</div><br>



       </div><br>_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Renato Santos<br><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>


</div></div>