我有一个相对路径,该路径可能不是有效路径(但出于某种原因我仍然想使用该路径)。我想通过从路径中删除/../将路径转换为绝对路径。
示例:
相对路径-a / b /../ d 我希望结果为a / d
我尝试了File :: Spec和Cwd,但是没有一个给我正确的结果。基本上,我需要一个perl API来做到这一点,而又无需遍历实际目录路径。
答案 0 :(得分:4)
您反复说过您想要绝对路径,但是a/d
不是绝对路径。我认为您需要一条规范(“清理”)的路径。为此,您可以使用File :: Spec的canonpath
:
use File::Spec::Functions qw( canonpath );
canonpath('a/b/./d') ⇒ a/b/c
canonpath('a/b/../d') ⇒ a/b/../d
a/b/../d
不一定等同于a/d
,它甚至可能不是a
的后代,因此无法简化。