The
select() function can be called so as to wait until input is available on a filehandle. This is probably the key to getting the
tail-like behavior you want. Take a look at
perldoc -f select. The only difficult bit is setting up the bit mask.
If this is running in root's crontab, then it can just do the appropriate kill -1 equivalent (Perl has a kill() function too) to restart LDAP.