[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);
コメント
コメントを投稿