Программист еще раз исправил модуль MkDir из предыдущей задачи, и стал вызывать mkdir только если каталог еще не существует.
MkDir3.pm (файл скачивается):
Еще можно скачать пример использования.
Однако и здесь не все хорошо.
Иногда mkdir_recursive
отрабатывает
без ошибок, но затем не получается
записать файл в свежесозданном каталоге.
Всякий каталог – это файл, но не всякий файл – это каталог.
Оператор -e
проверяет существование указанного файла.
Оператор -e
проверяет существование
файла, причем не обязательно каталога.
Если в файловой системе существует
обыкновенный файл (не каталог), совпадающий
по имени с каталогом, который должна создать функция
mkdir_recursive
,
то последняя не умирает, хотя нужный каталог
и не был создан (да и не может быть создан).
Стоит отслеживать такие случаи непосредственно
в функции создания каталогов.