Re: [Cascavel-pm] Funções com argumentos de arrays

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Sexta Janeiro 6 08:32:49 PST 2006


--- Brinde Storm - Steven Koch <s.koch em brindestorm.com> escreveu:
> Como posso fazer isso em Perl
>  
> minhaFuncao( @args1, $pos, @args2);
>  
> Fiz isso mas não esta a funcionar:
> 
> sub minhaFuncao(){
>     my(@args1, $pos, @args2) = @_;
>     ...
> }

  Você não pode passar listas e valores simples misturados.
  Use subroutine templates ou passe os valores por referência:

  sub minha_funcao(\@,$,\@){
    my( $arr_ref1, $scalar, $arr_ref2 ) = @_;
    # ...
    return $something;
  }

  # Para chamar esta, basta dizer
  minha_funcao( @array1, $scalar, @array2 );

  ou (mais simples de entender e usar):

  sub minha_funcao{
    my( $arr_ref1, $scalar, $arr_ref2 ) = @_;
    # ... 
    return $something;
  }

  # para chamar esta, precisa dizer 
  minha_funcao( \@array1, $scalar, \@array2 );

  Espero que isso ajude.
  Leia o capítulo 3 ("Gory Details") do Camel Book, lá tem todas as explicações que você precisa
sobre sub templating.

  Putamplexos!

--
Luis Campos de Carvalho
Member of "São Paulo Perl Mongers",
Unix SysAdmin & OCP/DBA Oracle


	



	
		
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 



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