Tree::Walker provides a framework for walking directory-like structures