首页 > 解决方案 > 为什么 File::Spec 在子目录中的文件上删除“./”?

问题描述

File::Spec“可移植地对文件名执行操作”的核心模块。这种行为对我来说很有意义,

# returns ./foo
File::Spec->catfile(".", "foo");

然而,这让我大吃一惊。

# returns foo/bar
File::Spec->catfile(File::Spec->catfile(".", "foo"), "bar");
File::Spec->catfile("./foo", "bar");

对于一个应该标准化这些东西的图书馆,为什么我的./走了?这种行为有原因吗?

很奇怪,这个回来了,

CP-JobApp/t/lib/Testing.pm
CP-JobApp/t/pod.t
CP-JobApp/t/find.t
./h
./problem1.pl

后处理模块返回的文件名是否正常?

标签: pathnameperlfile-find

解决方案


File::Spec::Unix 规范了路径的目录部分。

为什么它不规范整个路径(以便catfile('.', 'file')产生file)?不知道。这对我来说似乎是一个疏忽。随时提交错误报告。


推荐阅读