<br><br><div class="gmail_quote">2009/6/26 Fernando <span dir="ltr">&lt;<a href="mailto:fernandolouis@terra.com.br">fernandolouis@terra.com.br</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&quot;did not return a true value&quot;<br>
</blockquote><div><br></div><div>Ah, agora entendi sua dúvida. O seu problema é que ao usar &quot;require&quot; é necessário que o código carregado retorne um valor verdadeiro. E só a declaração de sub-rotinas não lhe dará isto.</div>
<div><br></div><div>Por isto, um arquivo como:</div><div><br></div><div><div># foo.pl</div><div>sub add2 { shift() + 2}</div><div><br></div></div><div>vai emitir este erro se carregado com &quot;require &#39;foo.pl&#39;&quot;</div>
<div><br></div><div>Mas qualquer um destes dois, funciona</div><div><br></div><div><div># foo2.pl</div><div>sub add2 { shift() + 2}</div><div>1;</div><div><br></div><div><div># foo3.pl</div><div>1;</div><div>sub add2 { shift() + 2}</div>
<div><br></div><div>Você pode se perguntar porque, e a resposta é que a construção &quot;sub nome_da_sub { ... }&quot; é executada em tempo de compilação e não produz um valor de retorno útil para os propósitos do &quot;require&quot; (isto vale para o &quot;use&quot; também que na verdade é definido em termos de &quot;require&quot;). Por isso, sempre que se constrói um arquivo para ser carregado por require/use (por exemplo, como um módulo - o que é mais usual em Perl moderno), você deve garantir que existe uma última expressão avaliada durante a carga do arquivo que retornará um valor verdadeiro. A forma mais fácil de fazer isso, por acaso, é colocar </div>
<div><br></div><div>1;</div><div><br></div><div>no final do arquivo.</div><div><br></div><div>Saudações,</div><div>Adriano</div></div></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
e se eu botar logo acima da rotina uma instrução qualquer do tipo $teste = &quot;&quot;; aí não dá erro e funciona.<br>
<br>
[]s<br>
Fernando<br>
<br>
----- Original Message ----- From: &quot;Giuliani Deon Sanches&quot; &lt;<a href="mailto:giulianisanches@gmail.com" target="_blank">giulianisanches@gmail.com</a>&gt;<br>
To: &quot;Cascavel Perl Mongers&quot; &lt;<a href="mailto:cascavel-pm@pm.org" target="_blank">cascavel-pm@pm.org</a>&gt;<br>
Sent: Thursday, June 25, 2009 5:48 PM<br>
Subject: Re: [Cascavel-pm] sub-rotina na frente<div><div></div><div class="h5"><br>
<br>
<br>
2009/6/25 Fernando &lt;<a href="mailto:fernandolouis@terra.com.br" target="_blank">fernandolouis@terra.com.br</a>&gt;:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Pessoal, pesquisei e não encontrei...<br>
<br>
Não é correto começar um programa-perl com uma subrotina?<br>
<br>
[]s,<br>
Fernando<br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org" target="_blank">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
<br>
</blockquote>
<br>
A principio e teoricamente não. Ta dando erro pra você ? Qual a saida ?<br>
<br>
[]&#39;s<br>
<br>
-- <br>
<a href="http://twitter.com/giulianisanches" target="_blank">twitter.com/giulianisanches</a><br>
<a href="http://giulianisanches.blogspot.com" target="_blank">giulianisanches.blogspot.com</a><br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org" target="_blank">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
<br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org" target="_blank">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
</div></div></blockquote></div><br>