use Parallel::ForkManager; my $pm = new Parallel::ForkManager(50); my $db = krish::DB->new or die $!; # its has all connection details while ( $low < $high ) { # Some value manipulation my $pid = $pm->start and next; #db_execution returns execution while ( my $sth = db_execution ( $db, $low , $high ) ) { ... #fetch row operation ... } $pm->finish; } sub db_execution { ... my $dbh = $db->connect( 'students' ) or die $!; my $sth = $dbh->prepare( $sql ) or die "$!:" . $dbh->errstr; $sth->execute or die "$!:" . $sth->errstr; ... }