64. Тернарный оператор в Perl 6

В 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

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s