use Path::Tiny qw/ path /; my $f = path( q(/home/temp/login)); while( not $f->is_rootdir ){ print join ' ', $f, $f->basename, "\n", ; $f=$f->parent; } __END__ /home/temp/login login /home/temp temp /home home