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() :