in reply to Duh. What am I missing about inherited constructors?

You're calling Foo::new as a sub, without arguments. Then $class is undef. That should cause the sub to die.

If I change Foo::new to Foo->new it works as I expect.

But you aren't inheriting any constructors here.