【发布时间】:2013-02-19 07:10:12
【问题描述】:
来自http://perldoc.perl.org/File/Path.html 的 perl 文档中指出:
"2.0分支改了API。一时间,mkpath和rmtree 尝试处理两种不同的调用,但未成功 机制。这种方法被认为是失败的。
新语义现在仅适用于 make_path 和 删除树。旧语义只能通过 mkpath 和 rmtree。强烈建议用户至少升级到 2.08 in 为了避免意外。”
perl 中的一些内容让我感到惊讶。它似乎在说,如果我不能控制 perl 的版本(我不能),那么我真的没有任何可靠的方法来做像创建目录这样简单的事情。我发现,由于不支持他们指定的某些参数调用,因此存在比文档所述更多的问题。
无论如何,我的问题是,有没有一种可靠的方法可以在 perl 中创建一个目录,设置掩码、用户名和组,并且可以与旧版本的 perl 一起使用?我们使用的是 5.8.8
【问题讨论】:
-
它说
mkpath仍然存在,我看不出它会消失的迹象。 (perl 重视向后兼容性,就像你不会相信的那样。)所以如果升级File::Path是不可行的,为什么不直接使用旧的mkpath? -
你无法控制perl的版本,但你当然可以控制File::Path的版本
-
@eevee。与 mkpath 相关的一点是“有一段时间,mkpath 和 rmtree 尝试处理两种不同的调用机制,但未成功。这种方法被认为是失败的”。那么我可以使用被认为是失败的接口吗?为什么它被认为是失败的?
-
这种对 Perl 的偏见反感也让我感到惊讶。
-
@TLP:我相信 Perl 5 Porters 在保持向后兼容性方面太努力了。这意味着这样的失败几乎没有成本,人们开始责怪语言而不是自己的疏忽;即使感知到的问题是虚构的!当世界其他地方即将使用 v18 时运行 Perl v8 是不可原谅的。