2012/4/20 Aureliano Guedes <guedes_1...@hotmail.com> > Desculpe, Bruno (agora certo). Veja, $self->{PORT} esta dentro de &port, > por isso chamar &port. >
Você está fazendo uma grande bagunça ao chamar uma função, colocando um & na frente dela. Chamar uma função desta forma "&foo;" é a mesma coisa que chamar "foo(@_);". Daqui pra frente, pare de colocar "&" na frente das coisas a menos que você saiba o que está fazendo :) Veja o anexo teste.pl, para ter certeza que você entendeu. O que está acontecendo no seu programa é que você está passando o @_, que contem a referencia para o próprio objeto (se você tivesse feito "my $self = shift;" no início da função, não teria ocorrido esse problema) e esta passando isso para a sua função port, que por sua vez está atribuindo essa referencia para $self->{PORT}. Logo quando o módulo Net::RawIP tenta criar um pacote onde a porta destino é "uma referencia para um objeto" que você passou... ele falha ;) > Não acho que o caso seja este, assim mesmo acabei de testar segundo a sua > dica e a IDE reclamou o erro, " Global symbol "$self" requires explicit > package name at Packs.pm line 40. ". > Adicione o mesmo "my $self = shift;", igual você fez em todas as outras funções do seu pacote e tente novamente. > > Ainda acho que o erro não esta no meu código e sim algum problema em o > Net::RawIP controlar de alguma forma o pcap. > O erro é no seu código. [ ]'s -- Bruno C. Buss http://www.brunobuss.net
teste.pl
Description: Binary data
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm