1package MyBase;
2use Test::More 'no_plan';
3
4sub MODIFY_HASH_ATTRIBUTES {
5    my ($package, $referent, @attrs) = @_;
6    for my $attr (@attrs) {
7        if ($attr =~ /Loud/) {
8            $referent->{Loud} = 1;
9        }
10        undef $attr
11    }
12    return grep {defined} @attrs;
13}
14
15use Class::Std;
16{
17    my %name_of :ATTR( :name<name> ) :Loud;
18
19    sub verify {
20        my ($self) = @_;
21        is $name_of{ident $self}, "mha_test"    => ':ATTR handled correctly';
22        is $name_of{Loud}, 1                    => ':Loud handled correctly';
23    }
24}
25
26package main;
27
28my $obj = MyBase->new({name=>'mha_test'});
29
30$obj->verify();
31
32