Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Perl 6 Deep Dive

You're reading from  Perl 6 Deep Dive

Product type Book
Published in Sep 2017
Publisher Packt
ISBN-13 9781787282049
Pages 402 pages
Edition 1st Edition
Languages
Author (1):
Andrew Shitov Andrew Shitov
Profile icon Andrew Shitov

Table of Contents (15) Chapters

1. What is Perl 6? 2. Writing Code 3. Working with Variables and Built-in Data Types 4. Working with Operators 5. Control Flow 6. Subroutines 7. Modules 8. Object-Oriented Programming 9. Input and Output 10. Working with Exceptions 11. Regexes 12. Grammars 13. Concurrent Programming 14. Functional Programming 15. Reactive Programming

User-defined operators

Perl 6 allows creating new operators. Unlike, for example, C++, new operators are not restricted to the predefined list of existing operators. You are free to name the operators as you want and choose a new combination of characters.

A user-defined operator should belong to one of the preceding-mentioned categories, such as infix, prefix, or circumfix, and so on.

Let's start with creating a new infix operator, +%, which calculates the sum of two numeric operands, but the result does not exceed 100:

sub infix:<+%>($a, $b) {
my $sum = $a + $b;
return $sum < 100 ?? $sum !! 100;
}

Defining an operator is similar to creating a subroutine, but the name of it should contain the name of the category and the operator itself.

It is now time to test the just created +% operator:

say 10 +% 20; # 30
say 40 +% 70; # 100

Another expressive example is...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime}