use strict;
use warnings;

$| = 1;              # ungepufferte Ausgabe
                     # sonst sieht man nichts

# Unterprogramm fuer Timeout
sub alarm_handle        
  {                  
  alarm(0);        
  print "Fehler\n";
  die "Zeitueberschreitung!\n";
  }                  

eval 
  {
  local $SIG{ALRM} = \&alarm_handle;
  alarm(10);        # Alarm starten
  for my $i (1..$ARGV[0])
    {
    print ".";
    sleep 1;
    }
  alarm(0);         # falls es gut ging, Alarm abschalten
  };
  
if ($@ and $@ =~ /Zeitueberschreitung/) 
  {
  print "Fehler\n";
  print "Zeit vorbei! Abbruch!\n";
  }
else 
  {
  print "Nochmal gut gegangen!\n";
  }
