Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re^2: How to Get the Last Subdirectories

by bichonfrise74 (Vicar)
on Mar 11, 2010 at 21:36 UTC ( #828142=note: print w/replies, xml ) Need Help??

in reply to Re: How to Get the Last Subdirectories
in thread How to Get the Last Subdirectories

Unfortunately, I have not tried anything yet. It's more like I am just thinking of how I should do it. Below is the idea that I was thinking.

  • Create a recursive hash and store each subdirectory as a key.
  • Loop through the recursive hash and place the 'directory' in a new hash. So, if the key is already in the new hash, then continue to the next one.

    But the above idea might be making things complicated. I was wondering if there is a simple approach to this or I may just be over complicating the problem.
    • Comment on Re^2: How to Get the Last Subdirectories
  • Replies are listed 'Best First'.
    Re^3: How to Get the Last Subdirectories
    by rovf (Priest) on Mar 12, 2010 at 09:04 UTC
      You are basically interested in those directories in your tree which have no subdirectories; so the following algorithm should work:
      1. Initially create an empty hash %leaf_directories
      2. Whenever File::Find drops you into a directory $d, do the following:
        1. Remove the parent directory of $d from the hash, i.e. if $d contains the full path, do a delete $leaf_directories{dirname($d)}. Of course this will fail occasionally (because there is no corresponding entry), but we ignore this.
        2. Add $d to your hash, i.e. $leaf_directories{$d}=1
      In the end, keys $leaf_directories should be the list of the directories without subdirectories.

      Ronald Fischer <>

    Log In?

    What's my password?
    Create A New User
    Domain Nodelet?
    Node Status?
    node history
    Node Type: note [id://828142]
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others pondering the Monastery: (4)
    As of 2022-09-30 22:36 GMT
    Find Nodes?
      Voting Booth?
      I prefer my indexes to start at:

      Results (126 votes). Check out past polls.