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