You are viewing the version of this documentation from Perl 5.38.1. View the latest version
mkdir FILENAME,MODE
mkdir FILENAME
mkdir

Creates the directory specified by FILENAME, with permissions specified by MODE (as modified by umask). If it succeeds it returns true; otherwise it returns false and sets $! (errno). MODE defaults to 0777 if omitted, and FILENAME defaults to $_ if omitted.

In general, it is better to create directories with a permissive MODE and let the user modify that with their umask than it is to supply a restrictive MODE and give the user no way to be more permissive. The exceptions to this rule are when the file or directory should be kept private (mail files, for instance). The documentation for umask discusses the choice of MODE in more detail. If bits in MODE other than the permission bits are set, the result may be implementation defined, per POSIX 1003.1-2008.

Note that according to the POSIX 1003.1-1996 the FILENAME may have any number of trailing slashes. Some operating and filesystems do not get this right, so Perl automatically removes all trailing slashes to keep everyone happy.

To recursively create a directory structure, look at the make_path function of the File::Path module.