[SP-pm] Dúvida com Hash Slices

Renato Santos renato.cron at gmail.com
Sun Jul 25 08:33:45 PDT 2010


Eu tambem acho que => puramente para facilitar visualmente, pois ele e a
virgula (,) fazem exatamente a mesma coisa:

use strict;use warnings;use diagnostics;use Data::Dumper;
 my @a = ('a'=>'b'=>'c');print
<http://perldoc.perl.org/functions/print.html> Dumper @a;


$VAR1 = 'a';
$VAR2 = 'b';
$VAR3 = 'c';


2010/7/25 Eden Cardim <edencardim at gmail.com>

> >>>>> "Thiago" == Thiago Glauco Sanchez <thiagoglauco at ticursos.net>
> writes:
>
>    Thiago> O perl sabe que vc se refere a um hash pelas chaves { } e a um
> array
>    Thiago> pelos ( ). Os { } indicam que são chves de um hash e ( )
>    Thiago> indicam que são elementos de um array.  Acho que era esta a
>    Thiago> sua pergunta?
>
> Na verdade, os parênteses são apenas para forçar precedência e não tem
> relação alguma com tipos de dados. Perl faz a diferenciação entre
> referências para arrays e hashes pela presença de '{}' ou '[]' como
> indexador:
>
> @{$array}[1, 2, 3] = qw(foo bar baz);
> @{$hash}{qw(foo bar baz)} = qw(quux moin meep);
>
> O mesmo vale para construção de arrays e hashes anônimos:
>
> my $array = ['foo', 'bar', 'baz'];
> my $hash = {'foo', 'quux', 'bar', 'moin', 'baz', 'meep'}
>
> Listas são construídas pelo operador ',', que tem precedência menor que
> o operador '=', então, no caso de:
>
> @foo = (1, 2, 3);
>
> Os parênteses estão sendo usados para forçar a construção da lista antes
> da atribuição. Se fosse:
>
> @foo = 1, 2, 3;
>
> O resultado seria um array contendo o elemento "1" e uma lista contendo
> 1, 2, 3 retornada em contexto void.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Renato Santos
http://www.renatocron.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100725/ed2a71e4/attachment.html>


More information about the SaoPaulo-pm mailing list