Olá amigos, Agradeço a todos pela resposta.
Renato, se eu utilizar o push de uma array conforme o código abaixo, da forma que está eu consigo alterar a pontuação de um frase dinamicamente? Por exemplo... Após eu colocar todas as frases e suas respectivas pontuações (que no início estarão todas com as pontuações zeradas), farei o seguinte: Minha frase (minha linha) que casar com minha expressão regular, irei chamá-lo de minha linha atual, e irei verificar a linha anterior (linhaatual -1) e posterior (linhaatual +1) para casar com outra expressão regular, que dependendo de cada regr, e esta pontuação poderá ser alterada, quando a frase for comparada com outras 2 frases (anterior e posterior a ela). Dessa forma que está (utilizando hash) eu consigo fazer isso posteriormente? Ah! E este arquivo de frases não chega a 1MB. Obrigada Juliana --- Em ter, 7/12/10, Renato Santos <[email protected]> escreveu: De: Renato Santos <[email protected]> Assunto: Re: [SP-pm] Ajuda com vetor de 2 dimensões Para: [email protected] Data: Terça-feira, 7 de Dezembro de 2010, 6:51 Amigo,em perl, seria bem mais interessante você utilizar um HASH (ou como eu sou viciado, HASHREF) Hash é uma lista, mas no lugar de indexs, você tem strings.Por exemplo:$foo = { eu_sou_uma_chave => 'eu_sou_o_valor'}; Então, voce pode utilizar-se do push de uma array, monta assim, uma array de hash: open(my $frases, "set.txt") or die "Nao foi possivel abrir o arquivo: $!"; my @vetor = (); my $pontuacao=0; while (my $linha = <$frases>) { chomp($linha); # tira o fim de linha push(@vetor, { linha => $linha, num_linha => $., pontuacao => $pontuacao }); # se vc nao passar linha, vai pro $_ } # aqui talvez tenha um codigo que vai mudar a pontuacao, correto? pois a pontuacao de todos esta zerada! # e aqui mostra na tela for my $item (@vetor){ print "$item->{num_linha}: $item->{linha} - $item->{pontuacao}\n"; } ----------------------------Minhas considerações:você não deve sempre ler um arquivo e jogar numa array, se for fazer isso, você acaba jogando todo o arquivo na memoria, ese o arquivo tiver uns 100~ 300 mb isso não é muito legal! 2010/12/7 Juliana <[email protected]> Olá amigos da lista, Estou com dificuldade em implementar um código utilizando um vetor com 2 dimensões. Poderiam me dar uma dica de onde está o erro? O código segue abaixo: #abre arquivo de frases, uma frase por linha: frase1: xxxx; frase2: yyyyyy; frase3: zzzzz open(my $frases, "set.txt") or die "Nao foi possivel abrir o arquivo: $!"; my @vetor=$frases; my $pontuacao=0; my $i=0; #insiro a frase a pontuacao em um vetor de duas dimensoes: posicao frase e posicao pontuacao while (<$frases>) { $vetor[$i] = [$frases, $pontuacao]; $i++; } #imprimir todas as frases seguido de sua pontuacao : print $vetor->[$i], "=", $vetor->[$i], "\n"; ???? for my $vetor (@vetor){ print $vetor->[0], "=", $vetor->[1], "\n"; } Aguardo contato. Obrigada! Abraços Juliana _______________________________________________ SaoPaulo-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/saopaulo-pm -- Renato Santos http://www.renatocron.com/blog/ -----Anexo incorporado----- _______________________________________________ SaoPaulo-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/saopaulo-pm
_______________________________________________ SaoPaulo-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/saopaulo-pm
