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