eval{ local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required alarm($timeout); $conn = DBI->connect($connection, $USER, $PASS, { RaiseError => 0, AutoCommit => 1 } ); alarm(0); }; if ($@){ my_die ( "Unable to login : [$@]: [$conn->errstr]"); }