The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Let em clarify what is happening here. Baz::foo is calling super(), which calls Bar::foo, which is an augmented sub that calls Foo::foo, then calls inner() which actually then calls Bar::foo. Confusing I know,.. but this is *exactly* what is it supposed to do :)

Allow me to clarify this one now ...

Since Baz::bar is an augment routine, it needs to find the correct inner() to be called by. In this case it is Foo::bar. However, Bar::bar is in-between us, so it should actually be called first. Bar::bar is an overriden sub, and calls super() which in turn then calls our Foo::bar, which calls inner(), which calls Baz::bar.

Confusing I know, but it is correct :)