Prev: Class Methods

Private Attributes

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.


use v6;

class Point {
    has $.x is rw;
    has $.y is rw;
    has $!weight;
    method reset {
        $.x = 0;
        $.y = 0;
        $!weight = 0;

my $a = => 23, y => 42, weight => 2);

say $a.x;  # 23
#say $a.weight;  # Exception: Could not locate a method 'weight' to invoke on class 'Point'


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:
Full name:
This is a newsletter temporarily running on my personal site ( using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2012-01-01

Prev: Class Methods


In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 2.30050080

Support my Perl 6 book!

I am writing a book on Web Application Development in Perl 6 and raising money via crowdfunding. Please support my effort!

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.