Utiliser la fonction alarm() et annuler son effet si l'opération réussit :
#!/usr/local/bin/perl use strict; use FileHandle; my $file = "file"; eval{ local $SIG{ALRM} = sub { die "alarm\n" }; alarm(5); if(my $fd = FileHandle -> new($file,"w")) { alarm(0); print $fd "Bonjour\n"; $fd -> close() or warn $!; } }; exit 1;
Plus de documentation dans la documentation de Perl :
Et dans les pages de man à propos de la commande système alarm() :