package MyClass::A; use strict; use warnings; use Exporter; use base qw(Net::Server::PreFork); #our @ISA = qw(Exporter); our @EXPORT = qw(new serve); our @EXPORT_OK = qw(); sub new { my ($class_name) = @_; my $self = {}; bless $self, $class_name; #... return $self; } sub process_request { #... } sub serve { my ($self) = @_; MyClass::A->run(); return $self; } my $s = MyClass::A->new(); $s->serve();