package Foo; use base qw(CGI::Application); use Bar; sub new { my $class = shift; # SUPER refers to CGI::App because of 'use base' my $self = $class->SUPER::new(); $self->{ stuff } = 'whatever'; $self->{ bar } = Bar->new(); # I wouldn't use 'super' as a key here return $self; } # etc ... #### use Foo; my $app = Foo->new();