package ObjectPool; use strict; use Integer; sub new { my $class = shift; my $self = {}; $self->{array} = []; my $i; for ($i=0; $i<100000; $i++) { $self->{array}->[$i] = Integer->new($i); } $self->{num_elements} = 100000; bless $self, $class; } sub acquire { my $self = shift; if ($self->{num_elements} == 0) { return 0; } else { $self->{num_elements}--; return $self->{array}->[$self->{num_elements}]; } } sub release { my $self = shift; my $obj = shift; $self->{array}->[$self->{num_elements}++]; } 1;