[Rio-pm] Mudando de formato

Aureliano Guedes guedes_1000 em hotmail.com
Domingo Abril 1 04:56:30 PDT 2012


Consegui, mais ou menos aqui, apesar da grande ajuda que tive aqui e no Forum-Invaders,
ainda sim fui eu que fiz, portanto entendi muita coisa.

Contudo ainda tem me voltado um erro na hora de executar, apesar de gerar a saida como o desejado
aparece alguns prints desnecessarios.

exemplo #11, #20, #26 aprarecem duas vezes, na primeira vez como deveria ser
na segunda sem nada, conferi os dados, saem todos corretos,  mas quando o trabalho
do script é 0 ($work = 0), ele continua printando o dado.

se alguem puder dar uma lida e tenta me ajudar como resolver esse encomodo...

[CODE]
#!/usr/bin/perl
use common::sense;
my $work = 0;
my $count = 0;
my $lastline = /[A-Za-z]/;
foreach my $line(<DATA>){
    chop($line);
    if($work == 1){
        $line =~ /(.+),\s+(.+)$/;
        
        if($1 eq ($lastline x 3)){
            $work = 0;
            $count--;
            
        }
        
        my @contents= split(/\s/, $2);
        
        
        my ( @first, @second );
        foreach (@contents){
            my ($first, $second) = /(\d{2})(\d{2})/;
            push(@first, int($first));
            push(@second, int($second));
        }
        
        $count++;
        print "#$count\n", join(" ", @first), "\n", join(" ", @second), "\n";
    }
    if($line eq "Pop"){
        $work = 1;
    }
}
__DATA__
Pop
001,    0303 0303 0101 1011 0304
002,    0303 0003 0101 0410 0405
003,    0303 0305 0101 1013 0304
004,    0103 0304 0102 0207 0104
005,    0303 0506 0101 0407 0405
006,    0303 0405 0101 0506 0405
007,    0303 0104 0101 0204 0305
008,    0303 0105 0101 0203 0304
009,    0303 0303 0101 1011 0404
010,    0303 0303 0101 0507 0405
Gra,    0203 0304 0202 0207 0105
Pop
050,    0103 0304 0102 0206 0105
051,    0103 0304 0202 0102 0105
052,    0303 0305 0102 0404 0507
053,    0103 0506 0202 0205 0105
054,    0303 0404 0101 0411 0405
055,    0103 0505 0202 0306 0102
056,    0303 0404 0101 0912 0304
057,    0303 0404 0102 0406 0105
Lev,    0303 0303 0202 0106 0105
Pop
078,    0303 0303 0101 0407 0405
079,    0303 0303 0101 0506 0405
080,    0203 0303 0102 0510 0405
081,    0303 0303 0101 0708 0404
082,    0101 0404 0202 0202 0101
Mod,    0303 0203 0102 0608 0105
Pop
011,    0303 0304 0102 0710 0405
002,    0103 0405 0102 0313 0104
003,    0303 0204 0202 0209 0405
004,    0303 0303 0101 1011 0404
005,    0303 0305 0101 0413 0405
006,    0101 0404 0202 0202 0101
007,    0303 0104 0101 0211 0304
008,    0303 0103 0101 0210 0304
009,    0303 0304 0102 0210 0405
010,    0303 0303 0101 0411 0405
011,    0303 0305 0102 0407 0405
012,    0101 0404 0202 0203 0101
013,    0303 0303 0101 0404 0404
014,    0303 0303 0101 0110 0405
015,    0103 0404 0202 0206 0101
016,    0303 0304 0202 0204 0305
017,    0303 0304 0202 0511 0407
018,    0103 0204 0202 0102 0105
CTR,    0103 0304 0202 0210 0303
[/CODE]

Bem, agradeço a todos, mas ainda digo que essa é so uma parte do programa... mas é a mais dificil.





From: bruno.buss em gmail.com
Date: Sat, 31 Mar 2012 22:07:26 -0300
To: rio-pm em pm.org
Subject: Re: [Rio-pm] Mudando de formato

2012/3/31 Aureliano Guedes <guedes_1000 em hotmail.com>






Primeiro, sei que $_ é uma variavel especial, sei pra que serve, mas quando temos $_[0], $_[1] etc... isso é o mesmo que manipulação direta de array??

Sim, no caso você está manipulando o array @_ ;)


http://perldoc.perl.org/perlvar.html
 


Outra duvida é quando temos @{alguma coisa}, por exemplo @{$_}... o que esse array com chaves quer dizer, digo, o que ele faz??

http://perldoc.perl.org/perlreftut.html 



[ ]'s
-- 
Bruno C. Buss
http://brunobuss.wordpress.com/
http://www.dcc.ufrj.br/~brunobuss/




_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120401/f2d26d36/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm