in reply to Re: File::find and skipping directories
in thread File::find and skipping directories

I suggest explicitly checking for a directory named '/home' to allow it:
if (-d && $uid < 500 and $File::Find::dir ne '/home'){

Aside, your status message is redundant:
print "UID is $uid, skipping $File::Find::dir, $File::Find::name, +$_\n"; __END__ UID is 0, skipping /home/zackse, /home/zackse/.kde, .kde
You can simplify this to:
print "UID is $uid, skipping $File::Find::name\n"; __END__ UID is 0, skipping /home/zackse/.kde

Remember that inside the wanted subroutine (offenders in this case), $_ contains the basename,$File::Find::name contains the full path, and $File::Find::dir contains the current directory.

--sacked