package Foo; use base qw/Class::StructAccessors/; __PACKAGE__->mk_struct_accessors({A => {B => C}}); #### my $obj = {}; bless $obj, "Foo"; $obj->{A}{B}{C} = "this is a C"; print $obj->C; # outputs "this is a C" #### package Bar; use base qw/Class::StructAccessors/; __PACKAGE__->mk_struct_accessors({X => {Y => Z}}); #### my $obj = bless {a => {b => {c => 'data for c'}}}, "Class::StructAccessorMk2";