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

Responder a