Humm... não entendi o problema exatamente, mas basicamente você está passando um hash, e um escalar e não está conseguindo recuperar a informação, certo?<div><br></div><div>Tente passar o seu hash assim:</div><div><br></div>
<div>SubHshScalar(\%hash, $scalar); </div><div><br></div><div>Por que? Tente entender o que eu escrevi abaixo:</div><div><br></div><div><br></div><div><br></div><div>Ex.: Suponha que o hash tenha o seguinte valor:</div><div>
<br></div><div>%hash = (1 =&gt; &quot;Andre&quot;);</div><div><br></div><div>E o escalar tenha o seguinte valor: </div><div><br></div><div>$scalar = &quot; se orgulha do SP-PM&quot;;</div><div><br></div><div>Traduzindo o conteúdo de @_;</div>
<div><br></div><div>(1,&#39;Andre&#39;,&#39;se orgulha do SP-PM&#39;);  # Certo?</div><div><br></div><div>Traduzindo isso para um hash...Sim, isso pode ser um hash... Já vou explicar porque traduzir para hash...</div><div>
<br></div><div>(1=&gt;&#39;Andre&#39;,</div><div> &#39;se orgulha do SP-PM =&gt; undef</div><div>);</div><div><br></div><div><br></div><div>Explicação do porque traduzir para hash: </div><div><br></div><div>Agora, olha como você tá recebendo o parâmetro na sua função...</div>
<div><br></div><div><br></div><div>(%hash, $scalar) = @_;</div><div><br></div><div><br></div><div>O primeiro parâmetro você diz que é um hash, ok? Portanto, Perl vai procurar traduzir @_ em um hash, oras... Logo você vai ter um hash, ou seja:</div>
<div><br></div><div><br></div><div><div>(1=&gt;&#39;Andre&#39;,</div><div> &#39;se orgulha do SP-PM =&gt; undef</div><div>);</div></div><div><br></div><div><br></div><div>Tarááááá....</div><div><br></div><div><br></div><div>
No entanto, se você passar o hash como referência, olha o que temos em @_ ... </div><div><br></div><div>( {1 =&gt; &#39;Andre&#39;} , &#39;se orgulha do SP-PM );</div><div><br></div><div><br></div><div>Sacou???</div><div>
<br></div><div><br></div><div>Se não entendeu, me pergunte, que eu tento explicar de outra maneira.</div><div><br></div><div><br></div><div><br></div><div>Cheers!</div><div><br></div><div><br></div><div><br></div><div><br>
</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">2010/6/30 GmailPaqui <span dir="ltr">&lt;<a href="mailto:cpaqui@gmail.com">cpaqui@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


  

<div bgcolor="#ffffff" text="#000000">
Caros, boa tarde!<br>
<br>
Estou tendo problemas para passar dois parâmetros para uma sub, um hash
e um scalar.<br>
<br>
SubHashScalar(%hash, $scalar);<br>
<br>
sub SubHshScalar () {<br>
    my (%hash, $scalar) = @_;<br>
<br>
    print &quot;@{[ %hash ]}\n&quot;;<br>
    printf &quot;Scalar: %s&quot;, $scalar;<br>
}<br>
<br>
O parâmetro scalar não esta sendo configurado, se eu do um print no @_
imprime o hash e o scalar.<br>
<br>
O que estou fazendo de errado?<br>
<br>
Obrigado.<br>
<div>-- <br>
<span style="font-family:Verdana,sans-serif;font-size:10pt;color:rgb(102, 153, 204)">
<b>Cleive Paqui</b> <br>
</span> </div>
</div>

<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>
(11)82907780<br>
</div>