Note! This site is about Perl 6.
If you are looking for a solution for Perl 5, please check out the Perl 5 tutorial.
Using exlamation mark as the twigil indicates tha the attribute
is private. So has $!x will create a variable that can be accessed
from within the class bug which won't have an accessor from the
outside world.
tutorial/classes/point_04.p6
use v6;
class Point {
has $.x is rw;
has $.y is rw;
has $!weight;
method reset {
$.x = 0;
$.y = 0;
$!weight = 0;
}
};
my $a = Point.new(x => 23, y => 42, weight => 2);
say $a.x; # 23
#say $a.weight; # Exception: Could not locate a method 'weight' to invoke on class 'Point'
$a.reset;
say $a.x; # 0
The Perl 6 Tricks and Treats newsletter has been around for a while.
If you are interested to get special notification when there is new content
on this site, it is the best way to keep track:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman,
till I implement an alternative system in Perl 6.
Written by Gabor Szabo