use Foo::Dates; use Foo::Customer; use Foo::Order; use Foo::Company; use Foo::Company::SalesReps; use Foo::Extremely::Long::Package::Name; #### sub HTML::TokeParser::Simple { my $module = (caller(0))[3]; undef *{$module}; eval "require $module"; if ($@) { require Carp; Carp::croak "No such module: $module"; } return $module; } package main; my $parser = HTML::TokeParser::Simple->new(\*DATA); __DATA__ ... more html #### use Class::WhenNeeded 'Foo'; my $customer = Foo::Customer->new($customer_id); my $order = Foo::Order->new; #### use Class::WhenNeeded Foo => 'no_top_level'; my $customer = Customer->new($customer_id); my $order = Order->new;