use DBI; our $db; our %sp; sub open_db { return if $db and $db->{'Active'}; Log "\nConnecting to the database"; eval { $db = DBI->connect('dbi:ODBC:Driver=SQL Server;Server=JobVIPeR;Database=XxxXXXxX', 'xxx', 'xxx', {PrintError => 0,RaiseError => 1,LongReadLen => 65536,AutoCommit => 0}); }; if (! $db) { Log("\tCannot connect to the database! : $DBI::errstr"); return; } Log "\tConnected"; prepare_sps(); } sub prepare_sps { $sp{SetDirty} = $db->prepare('EXEC dbo.SetInt ?, 1'); #... } #... $sp{SetDirty}->execute($objname."_dirty"); #...