=pod package Canine; package Dog; my Canine $spot : Watchful ; #### use attributes (); attributes::->import(Canine => \$spot, "Watchful"); =cut #### use warnings; use strict; package Dog; sub MODIFY_SCALAR_ATTRIBUTES { my $class = shift; my $ref = shift; my %dog; @dog{@_} = (1) x @_; $$ref = \%dog; bless $$ref, $class; print "Woof!\n"; (); } #### package main; my Dog $spot :Watchful Muddy; my $izzie = ref $spot; print $izzie? "$izzie Spot is @{[keys %$spot]}": "No Spot", $/; #### my Dog $rover;