use strict; use warnings; use 5.010; print 'Enter your password: '; my $password = eval { local $SIG{ALRM} = sub {die "timeout\n"}; alarm 5; return ; }; alarm 0; if ($@ =~ /timeout/) { say "You timed out."; }