gpt4 book ai didi

perl - 是否有一个 Perl 模块可以折叠文件系统路径,例如 a/b/.. 或 a//b?

转载 作者:行者123 更新时间:2023-12-01 05:21:43 27 4
gpt4 key购买 nike

我正在编写一个程序,我必须删除路径中的冗余,例如

a/b/.. -> a
a//b -> a/b
a/./b -> a/b

是否有任何现有模块执行此操作?

更新:此规范化/规范化由 RFC 3986 描述.我只需要路径段规范化部分。

当然,这实现起来很简单。我仍然想知道它是否已经被打包到某个模块中。

最佳答案

标准中没有规定URL层次结构中元素的形式路径和含义或关系。根据服务器的不同,可能根本没有层次结构 - 由 / 拆分的元素可能被视为位置或顺序可能根本没有意义。因此,没有特定的模块来处理 URL 的任务。

但是,如果您完全确定目标服务器的工作方式,您可以简单地调整 File::Spec根据您的需要:从 URL 中提取路径(例如使用 URI ),将其作为文件路径进行处理,然后将其放回原处。

考虑到您将在文件系统上使用常规文件名的评论,您甚至不需要从路径中提取任何内容 - File::Spec 足以满足您的所有需求。

如果您希望解决 File::Spec(按设计)不解析 ..,请使用 splitpath 从中提取目录名称的一部分,splitdir 将其拆分为目录,然后迭代该数组,每次遇到 .. 时都拼接'ing 两个元素.使用 catdircatfile 将结果打包回来。

关于perl - 是否有一个 Perl 模块可以折叠文件系统路径,例如 a/b/.. 或 a//b?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156418/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com