in reply to Yea, though i walk through the shadow of File::Find & Directory Tree Deletion...

Your solution seems a little too clever to me. You're deleting as you go through the tree. I'd break the task into two steps:
  1. find everything to be deleted;
  2. second, delete it
So use File::Find (a module whose interface I hate, try File::Find::Rule instead) to push everything into an array as you find it, then ...

foreach (reverse @array) { (-d && rmdir) || (-f && unlink) }

Note the reverse - you'll find parent directories before their contents, but need to delete them afterwards.

Alternatively, if you unshift data into the array, the reverse isn't needed. But IMO pushing is better, as it's more widely used and understood.