В чем разница между
my $foo
и
my ($foo)
В чем разница между
my $foo
и
my ($foo)
Там нет никакой разницы между 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.
Спасибо @ Andy за материал –
Это контекст контекста контекста контекста, чтобы быть как можно более педантичным. – AKHolland
Также педантированный. Спасибо @AKHolland –
Я знаю, что вы просто выбрали '$ Ā' в качестве примера, но вы получили (не) повезло в том, что '$ a' - это специальная переменная ... вы никогда не должны использовать' my $ a' или 'my ($ a)' в скрипте, так как он будет зависеть от 'sort'. – ThisSuitIsBlackNot