Вопрос

Я новичок в Perl, и мне интересно, @{$list_ref} и @$list_ref совершенно эквивалентны.

Кажется, они взаимозаменяемы, но я нервничаю, что происходит что-то тонкое, что я могу упустить.

Это было полезно?

Решение

Да, они эквивалентны.Вам нужны фигурные скобки, когда выражение представляет собой нечто большее, чем простая скалярная переменная. например,

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

Более подробную информацию см. Использование ссылок раздел документация по ссылкам.Стандартная документация Perl также включает несколько руководств по использованию ссылок:

Другие советы

Мне всегда было полезно помнить, что внешние фигурные скобки — это не синтаксическая магия, а просто блок, возвращающий ссылку.Выражение внутри блока может быть любым, возвращающим ссылку:

$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top