sub wanted { -l && !-e && print "bogus link: $File::Find::name\n"; } #### use File::Find; find(\&remove_broken_symlinks, '/path/to/start'); sub remove_broken_symlinks { if (-l && !-e) { print "Removing broken symlink: $File::Find::name\n"; unlink($_) or die "Can't unlink $File::Find::name: $!\n"; } }