in reply to Re: howto reference to a external sub/object/constructor thingy
in thread howto reference to a external sub/object/constructor thingy

That breaks inheritance. You oughtn't assume anything about how Tool gets or implements new(). I suggest instead:

my %states = ( module => sub { Tool->new( @_ ) }, );