unless (mkdir $dir) { -d $dir && ... dir exists; -w _ || ... not writable by euid -x _ || ... not traversable by euid } #### $fh = IO::File->new ($filename, O_EXCL | O_CREAT | ...)