in reply to
how to get the all the subdirectories path from the directory
If you're running this on a linux box, you could use backticks.
my @dirs = split(/\n/,`find /from/this/place/on -type d`);
Nice thing about this is that you are using linux find, you can specify a lot of options, like formatting the output to get inode, timestamp, you can sort them by date, whatever.
You may want to do a man find from your shell prompt- it would show you the options.
You have to be aware that using backticks is more of a temporary script thing, for throw-away code. There are security and i guess portability issues with backticks.