use constant TIMEOUT => 15; # Sekunden, nach der eine Regel abgeschossen wird. ... my @allmatch; my ($m1, $m2, $m3); eval { local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required alarm TIMEOUT; @allmatch = $ts =~ $composite->data()->[$i]->{re}; ($m1, $m2, $m3) = ($`, $&, $'); alarm 0; }; if ($@) { die "Matcherror: $@\n" unless $@ eq "alarm\n"; # propagate unexpected errors # Markieren, dass dieser Satz wegen timeout nicht vollständig bearbeitet ist! warn "ABBRUCH WEGEN ZEITUEBERSCHREITUNG (Regel $regelname)\n"; next SENTENCE; } ...