sub w{ my $s = pop || die; my $t = pop || die '!'; eval { w( @_, $s-$t) }, $@ =~ /!/ || die if $t <= $s; w( @_, $s) }