my $fn= File::Spec->rel2abs("../bin/fnurgle","/usr/local/bin"); print "Before: $fn\n"; for (File::Spec->splitdir($fn)) { if ($_ ne "..") { push @arr, $_ } else { pop @arr } } print "After: ",File::Spec->catdir(@arr),"\n";