Pergunta

Eu sou novo para Perl e estou curioso se @{$list_ref} e @$list_ref são perfeitamente equivalentes.

Eles parecem ser intercambiáveis, mas estou nervoso que há algo sutil acontecendo que eu pode estar faltando.

Foi útil?

Solução

Sim, eles são equivalentes. Você precisa de chaves quando a expressão é mais do que uma variável escalar simples, por exemplo. ,

push @{ $foo{$bar} } => "baz";

Para obter mais detalhes, consulte a seção do usando referências href = "http://perldoc.perl.org/perlref.html" rel = "nofollow noreferrer"> documentação sobre referências . A documentação padrão Perl também inclui vários tutoriais sobre como usar referências:

Outras dicas

Eu sempre achei útil lembrar que as chaves exteriores não são mágicos sintática, eles são apenas um bloco que retorna uma referência. A expressão dentro do bloco pode ser qualquer coisa que retorna uma referência:

$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top