Пару дней назад мы создавали префиксный оператор и обещали посмотреть на другие виды, существующие в Perl 6. Давайте сделаем это сегодня.
Постфиксы
С префиксами все просто: это оператор, стоящий перед своим единственным операндом. Ровно то же, но наоборот, с постфиксом. Однако стоит понимать, что префиксный и постфиксный операторы, даже если они имеют одинаковый вид, полностью независимы. Можно даже сделать так, что они будут работать противоположно.
Типичный пример постфиксного оператора — инкремент ++ или декремент --. Классика кастомного постфиксного оператора — факториал:
sub postfix:<!>(Int $n) { [*] 1..$n } say 5!; # 120
Инфиксы
Следующий тип — инфиксы. Таких операторов большинство; эти операторы стоят между двумя операндами, например, $a + $b или $a ... $b. Уверен, вы без труда сможете создать собственный оператор при необходимости. Например:
sub infix:<≈>($a, $b) { abs($a) - abs($b) < 1 } say 3.14 ≈ pi; # True
(В Perl 6 уже есть встроенный оператор приблизительного равенства: =~= или ≅, который устроен чуть более сложно.)