Thanks for the input cfreak. What is missing from the code sample is the actual CGI script which calls the new() defined in C::A. I am new to OO use and your answer sheds some light on where my package fits in the big picture.
Thanks again.
Comment on Re^2: CGI::Application and object inheritance
Sorry that wasn't clearer. new() in package Foo makes the call my $self = $class->SUPER::new(). Because of the use base statement SUPER now refers to C::A. $cgi_app is an object from which you can access your own methods or the C::A methods. If you need to pass opts to C::A you can modify new() in Foo. I'd modify it so you can pass the opts to the Foo package and it passes them on.