I am guessing the find method passes into the subroutine everything found in the path that is the second parameter which in this case is the current working direcoty. The first line of the subroutine is 'next unless -d' but how can you have 'next' in a subroutine. I've only seen it in a loop. It seems to exit the subroutine. Is this an ok thing to do?