package MyThreadSpool; use Carp; use threads; sub new { shift; croak "Port number required" unless(@_); my $port :shared = shift; my %buffer :shared; my $self = { port => $port, buffer => \%buffer } bless $self,"MyThreadSpool"; return $self } #### #!/usr/bin/perl -w use strict; use MyThreadSpool; my $obj = MyThreadSpool->new(8080,my %buffer); # and so now print $obj->{port}.... etc etc etc