1print "1..4\n";
2
3package MyBase;
4use Class::Std;
5{
6    my %attr : ATTR( :default(42) );
7
8    sub BUILD {
9        my ($self, $id) = @_;
10        print 'not ' if defined $attr{$id};
11        print "ok 1 - Default not available in BUILD\n";
12    }
13
14    sub START {
15        my ($self, $id) = @_;
16        print 'not ' if !defined $attr{$id};
17        print "ok 3 - Default set before START\n";
18    }
19}
20
21package Der;
22use Class::Std;
23use base qw( MyBase );
24{
25    my %attr : ATTR( :init_arg<attr> );
26
27    sub BUILD {
28        my ($self, $id) = @_;
29        print 'not ' if defined $attr{$id};
30        print "ok 2 - Init arg not available in BUILD\n";
31    }
32
33    sub START {
34        my ($self, $id) = @_;
35        print 'not ' if !defined $attr{$id} || $attr{$id} ne '86';
36        print "ok 4 - Init arg set before START\n";
37    }
38}
39
40package main;
41
42Der->new({ attr=>86 });
43
44