Skip to Content
Perl 6 Deep Dive
book

Perl 6 Deep Dive

by Andrew Shitov
September 2017
Beginner
402 pages
9h 52m
English
Packt Publishing
Content preview from Perl 6 Deep Dive

The but operator

The but operator mixes in a role to an object, similar to how the does operator is doing that. The but operator does not modify an object itself and always returns a new object. In addition, but allows us to use already instantiated objects, as shown in the following example:

my $value = 0 but True;say 'It is true' if $value;

The $value becomes True in the Boolean context now, while it still contains pure zero.

In the case of mixing in roles, the same object starts behaving as an object belonging to different types, depending on the situation. Consider the following code snippet:

role Barking {    method bark() {        say "Bow-wow!";    }}my $dog = 14 but Barking;say $dog;    # 14$dog.bark(); # Bow-wow!

The $dog variable is printed as ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Perl Hacks

Perl Hacks

Chromatic, Damian Conway, Curtis Ovid Poe, Curtis (Ovid) Poe
Learning Perl 6

Learning Perl 6

brian d foy
Think Perl 6

Think Perl 6

Laurent Rosenfeld, Allen B. Downey
Pro Perl

Pro Perl

Peter Wainwright

Publisher Resources

ISBN: 9781787282049Supplemental Content