use strict; use warnings; ... sub write_status($$$$) { my $dbh = DBI->connect("DBI:mysql:mysql_socket=" ..... ); ... my $result = $dbh->begin_work(); ... $result = $dbh->do("UPDATE results ...."); ... $result = $dbh->commit(); } sub check_apps($\@) { my $dbh = DBI->connect("DBI:mysql:mysql_socket=" ..... ); ... my $sth = $dbh->prepare("SELECT * FROM ...."); ... if (! defined $sth->execute()) { ... } ... write_status($host, $app, $status, $version); } my $dbh = DBI->connect("DBI:mysql:mysql_socket=" ..... ); ... my $sth = $dbh->prepare("SELECT * FROM ...."); ... ... check_apps($host, @processes);