my @dbs = ( [ 'OWNER', 'dbi:...', 'user', 'pass' ], [ 'OWNER', 'dbi:...', 'user', 'pass' ], ); for my $db( @dbs ){ LogStats( @$db ); } ... sub LogStats { my( $filename, $dsn, $user, $pass ) = @_; ... my $dbh = DBI->connect( $dsn, $user, $pass, {qw/RaiseError 1/} ); open my($fh), ... ## QueryOne( $dbh, $fh, ... ); CreateTableStats( $dbh, $fh, ... ); PopulateTableStats( $dbh, $fh, ... ); DumpTableStats( $dbh, $fh, ... ); }