<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body><blockquote><hr id="EC_stopSpelling">Date: Tue, 10 Jul 2007 10:26:49 -0700<br>From: danielrantunes@yahoo.com.br<br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">&nbsp;&nbsp;&nbsp; Tenho uma classe/package chamada Supplier::X e tenho uma classe/package chamada Inquiry.<br>&nbsp;&nbsp;&nbsp; Na classe Inquiry eu chamo a classe&nbsp; X<br><br>&nbsp;&nbsp;&nbsp; use Supplier::X<br><br>&nbsp;&nbsp;&nbsp; E crio objetos : my $obj=new Supplier::X(); dentro desta classe Inquiry.<br>&nbsp;&nbsp;&nbsp; Até aí sem novidades, o Supplier::X faz suas declarações e processamentos normalmente.<br>&nbsp;&nbsp;&nbsp; Acontece que na classe Inquiry eu declaro um método (ou member function como chamamos em C) "new" também, pq no script de primeiro nível chamado "inquiry-server.pl" eu crio objetos "Inquiry" :<br><br>&nbsp;&nbsp;&nbsp; my $inquiry=new
 Inquiry();<br><br></div></blockquote>Você primeiramente deveria parar de usar métodos indiretos de chamar um construtor. Isso evita que você atire no seu pé. Vou comentar um trecho do livro do Damian Conway:<br><br>"Another way to call a constructor<br>Perl provides a second syntax for calling a constructor, or any other method belonging to a<br>class. It’s known as the indirect object syntax, and it’s already familiar to you. We’ll discuss it<br>here, and then you should tear out this page and eat it, so that you’ll never be tempted to use<br>the syntax. You’ll see why shortly."<br><br>Agradeça eu não ter comido a página; também acho bastante claro o que ele quiz dizer. Procure sempre usar:<br><br>my $object = Class::Something-&gt;new();<br><blockquote><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">&nbsp;&nbsp;&nbsp; Acontece que qdo vou executar o script de primeiro nível que é um server :<br><br>daniel@sun4w_nodeF:~/bin/inquiry-server-2$ ./inquiry-server.pl -v -p 10011<br>Subroutine new redefined at /home/daniel/bin/inquiry-server-2/Inquiry.pm line 147.<br>--verbose<br>Inquiry server started, listen on 10011 port.<br></div></blockquote>Me parece que esse problema está sendo causado justamente por causa da chamada de método indireta. Faça um teste aí. E se puder poste o código do Inquiry.pm (caso não resolva) na lista.<br><blockquote><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">&nbsp;&nbsp;&nbsp; Eu já dei uma caçada na web buscando algum meio de contornar esta warning, pelo que entendi ele está reclamando que eu tenho o método "new" no package Supplier::X e no package Inquiry.<br></div></blockquote><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">danielrantunes++ #por tentar se virar sozinho<br><br>[]'s<br>Alceu<br></div><blockquote></blockquote><br /><hr />Play free games, earn tickets, get cool prizes! Join Live Search Club.   <a href='http://club.live.com/home.aspx?icid=CLUB_wlmailtextlink' target='_new'>Join Live Search Club!</a></body>
</html>