in reply to
how to get the all the subdirectories path from the directory
If you are looking at alternatives, you might like to try my File::Wildcard, which gives you an object that you repeatedly call $obj->next on, which returns each file name in turn.
You have control of the sort order of each directory, the ellipsis ordering, i.e. whether you want to see subdirectories first or afterwards, and you can use a regex to filter the list and give you just the files that you want. You can even use $1, $2, etc. captures in the regex to construct a array of new filenames.
Oh Lord, won’t you burn me a Knoppix CD ?
My friends all rate Windows, I must disagree.
Your powers of persuasion will set them all free,
So oh Lord, won’t you burn me a Knoppix CD ?
(Missquoting Janis Joplin)