[perl] File::Path::mkpath() に複数のパスを与える

File::Path の mkpath で、複数のディレクトリパスを一気に作ってもらおうとすると困りそうなことについてです。make_path と mkpath はディレクトリパスが複数の場合の扱いに違いがあります。

make_path($dir1, $dir2, $dir3);      # OK
make_path($dir1, $dir2, $dir3, {});  # OK
mkpath($dir1, $dir2, $dir3);         # NG 【なんと!】
mkpath($dir1, $dir2, $dir3, {});     # OK
mkpath([$dir1, $dir2, $dir3]);       # OK

そもそも、複数のパスを指定することを止めれば安心して使えます。

mkpath($_) for ($dir1, $dir2, $dir3);

コメント

このブログの人気の投稿

[linux] ping は通るのに No route to host と言われる

Chrome でダウンロードしたファイル名の一部がハイフンになる

[windows] Windows 回復環境 (WinRE) を修理する