2015-02-04 2 views
2

В чем разница между

my $foo 

и

my ($foo) 
+3

Я знаю, что вы просто выбрали '$ Ā' в качестве примера, но вы получили (не) повезло в том, что '$ a' - это специальная переменная ... вы никогда не должны использовать' my $ a' или 'my ($ a)' в скрипте, так как он будет зависеть от 'sort'. – ThisSuitIsBlackNot

ответ

7

Там нет никакой разницы между my $a и my ($a).

Однако существует огромная разница между

my $a = some_function(); 

и

my ($a) = some_function(); 

Первый пример вызывает some_function в скалярном контексте. Второй вызывает его в контексте списка.

Если функция выглядит следующим образом:

sub some_function { 
    return ('Larry', 'Moe', 'Curly'); 
} 

Тогда ваши результаты будут:

my $a = some_function(); # $a gets "Curly", the last element in the list. 
my ($a) = some_function(); # $a gets "Larry" and the other two values are discarded. 
+0

Спасибо @ Andy за материал –

+2

Это контекст контекста контекста контекста, чтобы быть как можно более педантичным. – AKHolland

+0

Также педантированный. Спасибо @AKHolland –

Смежные вопросы