I'm to lazy to follow the details, but for Bar, *{$AUTOLOAD} = sub($;$) {goto \&{ $#_ ? $set : $get}}; can't work, since Bar::set_bar does not exists in opposide to Foo, where Foo::set_bar does the work. Same for Foo::get_foo.
Boris
Comment on Re: AUTOLOAD not following @ISA as expected