in reply to recursive mkdir

try File::Path.

use File::Path; eval { mkpath 'c:/foo/bar/' }; warn "problem making directory : $@" if $@; eval { mkpath '../baz/quux/' }; warn "problem making directory : $@" if $@;