#!/usr/bin/perl
use strict;
use warnings;
$|++;
my $s = 0;
use POSIX qw(SIGALRM);
POSIX::sigaction(SIGALRM, POSIX::SigAction->new( sub { warn "skipping $s (took too long)\n"; die } )) || die "Error setting SIGALRM handler: $!\n";
my $str = 'ffvadsvefwdvewrfvt4vketwrhjkbveqwkjhfkghjlfghjkufghjkfhjkfjkgfghfkhjfkhjgfhjgfhgfhkgfhkgfhkgfhkgfkhjgfkjgfkghjfkhjgfhjgfkhjgfhjkfk' x 40960;
$str .= 'hjkbklklhbjklercvqewrqereqrfqeerv;;;jnrveervnlknrvlerlvnerlnvelrvnervlkenvlervojubnertvffff;kn;kff;kn;fk;k;;kmnff;knmf;nff;mnkf;;k;;' x 40960;
my $str2 = $str x 8;
my $str3 = 'furrfu';
my $re = qr/(f((\w?)(\w*?))?)+/;
print time . "\n\n";
for ( $str, $str2, $str3 ) {
$s++;
my $res;
alarm 2;
eval {
$res = $_ =~ s/$re/ ^_^ /g;
};
print "$s made $res\n" unless $@;
}
print "\n" . time . "\n";
exit;
####
1401392795
1 made 1310721
skipping 2 (took too long)
3 made 2
1401392798
####
This is perl 5, version 16, subversion 2 (v5.16.2) built for darwin-thread-multi-2level
(with 3 registered patches, see perl -V for more detail)