Is there any module or any shohtcut to do this ?
Yup, File::Basename is what you're looking for. The idea is to strip off the last component of the path (by isolating the directory component) until you walk up high enough in the file system.
Note that I would have considered your example to start with 1. /, the root directory, but that's just me. Anyway, in a nutshell the code will look something like:
#! /usr/local/bin/perl use strict; use warnings; use File::Basename 'dirname'; my $path = shift || '/usr/local/bin/perl'; my @ancestor; while (1) { $path = dirname($path); last if $path eq '/'; push @ancestor, "$path/"; } print "$_\n" for reverse @ancestor;
• another intruder with the mooring in the heart of the Perl
In reply to Re: List directory(s)
by grinder
in thread List directory(s)
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |