В Perl 6 по-прежнему присутствует тернарный оператор, но выглядит он теперь иначе:
my $var = -10; my $abs = $var < 0 ?? -$var !! $var; say $abs;
Остальное все понятно — оператор делает ровно то же, что и ? ! в Perl 5. Однако, при попытке написать по-старому, вы получите сообщение об ошибке:
$ perl6 ternary.pl ===SORRY!=== Error while compiling /Users/ash/ternary.pl Unsupported use of ? and : for the ternary conditional operator; in Perl 6 please use ?? and !! at /Users/ash/ternary.pl:2 ------> my $abs = $var < 0 ?⏏ -$var : $var;
Интересно, что в самых первых реализациях Perl 6 тернарный оператор выглядел как ?? ::. На этот случай тоже предусмотрено сообщение:
$ perl6 ternary.pl ===SORRY!=== Error while compiling /Users/ash/ternary.pl Please use !! rather than :: at /Users/ash/ternary.pl:2 ------> my $abs = $var < 0 ?? -$var :⏏: $var; expecting any of: colon pair