my $retries = 5; my $dbh; while( !$dbh and $retries --> 0 ) { my $connected = eval { $dbh DBI->connect( $dsn, $user, $pass, { RaiseError => 1, PrintError => 0 ); 1 }; if( !$connected ) { warn "Couldn't connect to $dsn: $@; $retries retries left."; } else { last; }; }; if( $retries == 0 ) { die "Couldn't connect to $dsn after five (re)tries"; };