Aby zapisać 2 wartości z listy zwróconej przez okręt podwodny i wyrzucić trzecią z nich, można;Dlaczego przypisanie do listy zmiennych jest niespójne?
(my $first, my $second) = (1, 2, 3);
print $first, "\n";
print $second, "\n";
exit 0;
i działa zgodnie z oczekiwaniami (zarówno w perl5 jak i perl6). Jeśli chcesz tylko pierwszy;
(my $first) = (1, 2, 3);
print $first, "\n";
exit 0;
... otrzymujesz całą listę. Wydaje się to sprzeczne z intuicją - dlaczego ta niespójność?
Nie do końca rozumiem, dlaczego "my ($ first) = 1,2,3"; * działa * zgodnie z przeznaczeniem. Czy nie powinien obowiązywać tam również pojedynczy argument? Innymi słowy, jak to się różni od '(my $ first) = 1,2,3;' lub 'my $ first; ($ first) = 1,2,3; '? – mscha
@mscha: parens są przeciążone syntaktycznie: są używane jako część składni deklaracji, a także do rozgraniczania zwykłych list (które mogą zawierać rzeczy, które można przypisać); syntaktycznie może wyglądać podobnie, ale semantycznie, jabłka i pomarańcze – Christoph
@mscha: ze względu na konsystencję, dobrym pomysłem byłoby uczynienie reguł tymi samymi, ale pamiętaj, że lista sematyczna ewoluowała podczas dość długiego procesu programowania Perl6 – Christoph