new Obj("name_$i", $i) #### use Win32::ODBC; use warnings; use strict; my $i = 0; while($i < 20000000) { print "***NEW ITERATION \$i = $i\n"; my @objects = getObjects(); # do something $i += 100; } sub getObjects { my @objects = (); my $object = undef; my $db = undef; my $i = 0; $db = new Win32::ODBC("DSN=dsnname;UID=username;PWD=pw%") || die "Failed to establish connection\n"; for($i=0; $i<100; $i++) { #$object = new Obj("name_$i", $i); $objects[$i] = $object; print "Object ".( $object->to_string() )." created.\n"; } $db->Close(); return \@objects; } ################# IN Obj class definition ########### sub DESTROY{ my $self = shift; print "".( $self->to_string() )." biting the dust.\n"; }