Perl的“make_path”和“remove_tree”使用空选项哈希给出不同的结果

时间:2013-08-23 20:41:10

标签: perl path mkdir

我的模块中有一行代码看起来完全像这样:

make_path($root_dir);

不幸的是,它没有创建所需的目录(我已经检查过,并且确实有权限)。

但是,如果我将其更改为以下内容:

make_path($root_dir, {});

工作正常。前几行,我与make_path($root_dir); vs make_path($root_dir, {});的行为相同。任何想法为什么会这样?

我正在使用perl 5,版本16和文件:路径版本2.09。

1 个答案:

答案 0 :(得分:3)

Path :: Class :: Dir类创建基于哈希的对象。

make_path的用法为make_path(PATHS, OPTIONS_HASH)

当你将Path :: Class :: Dir对象作为make_path的最后一个参数传递时,它被视为选项哈希。

您可以通过显式提供选项哈希来解决此问题

make_path($path, {})

或通过显式字符串化路径

make_path("$path")