MCE::Loop::init { max_workers => 3, chunk_size => 1000, input_data => db_iter(), user_begin => sub { my ($mce) = @_; my $dsn = "DBI:Oracle:host=db_server;port=db_port;sid=db_name"; $mce->{dbh} = DBI->connect($dsn, 'db_user', 'db_passwd') || die "Could not connect to database: $DBI::errstr"; }, user_end => sub { my ($mce) = @_; $mce->{dbh}->disconnect; }, }; mce_loop { my ($mce, $chunk_ref, $chunk_id) = @_; my $dbh = $mce->{dbh}; my $ret = ''; foreach my $row (@{ $chunk_ref }) { $ret .= $row->[$i_color] .": ". $row->[$i_desc] ."\n"; } MCE->print($ret); };