[Rio-pm] hash como parametro

Andre Carneiro andregarciacarneiro em gmail.com
Quarta Junho 30 10:12:08 PDT 2010


ooops


Faltou dizer que você precisa modificar o modo como recebe o valor na sua
função...


sub Func {
my ($hash , $scalar);

#alguma coisa aqui...

}


Cheers!

Em 30 de junho de 2010 14:10, Andre Carneiro
<andregarciacarneiro em gmail.com>escreveu:

> 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?
>
> Tente passar o seu hash assim:
>
> SubHshScalar(\%hash, $scalar);
>
> Por que? Tente entender o que eu escrevi abaixo:
>
>
>
> Ex.: Suponha que o hash tenha o seguinte valor:
>
> %hash = (1 => "Andre");
>
> E o escalar tenha o seguinte valor:
>
> $scalar = " se orgulha do SP-PM";
>
> Traduzindo o conteúdo de @_;
>
> (1,'Andre','se orgulha do SP-PM');  # Certo?
>
> Traduzindo isso para um hash...Sim, isso pode ser um hash... Já vou
> explicar porque traduzir para hash...
>
> (1=>'Andre',
>  'se orgulha do SP-PM => undef
> );
>
>
> Explicação do porque traduzir para hash:
>
> Agora, olha como você tá recebendo o parâmetro na sua função...
>
>
> (%hash, $scalar) = @_;
>
>
> 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:
>
>
> (1=>'Andre',
>  'se orgulha do SP-PM => undef
> );
>
>
> Tarááááá....
>
>
> No entanto, se você passar o hash como referência, olha o que temos em @_
> ...
>
> ( {1 => 'Andre'} , 'se orgulha do SP-PM );
>
>
> Sacou???
>
>
> Se não entendeu, me pergunte, que eu tento explicar de outra maneira.
>
>
>
> Cheers!
>
>
>
>
>
>
>
>
>
>
>
> 2010/6/30 GmailPaqui <cpaqui em gmail.com>
>
>>  Caros, boa tarde!
>>
>>
>> Estou tendo problemas para passar dois parâmetros para uma sub, um hash e
>> um scalar.
>>
>> SubHashScalar(%hash, $scalar);
>>
>> sub SubHshScalar () {
>>     my (%hash, $scalar) = @_;
>>
>>     print "@{[ %hash ]}\n";
>>     printf "Scalar: %s", $scalar;
>> }
>>
>> O parâmetro scalar não esta sendo configurado, se eu do um print no @_
>> imprime o hash e o scalar.
>>
>> O que estou fazendo de errado?
>>
>> Obrigado.
>> --
>>  *Cleive Paqui*
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> André Garcia Carneiro
> Analista/Desenvolvedor Perl
> (11)82907780
>



-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20100630/ad17f953/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm