У меня есть Perl-скрипт, который должен работать на любой платформе (Windows, Mac, Linux, ...).Часть его функциональности заключается в переименовании файлов, но я не хочу, чтобы он перезаписывал существующие файлы.Допустим, скрипт называется «my_rename» и принимает те же аргументы, что и функция «переименовать», а пользователь выполняет эту команду:
my_rename test.txt test.TXT
Проблемапроисходит, если -e "test.txt" и -e "test.TXT" оба возвращают true.Вот как я хотел бы справиться с этой ситуацией при следующих условиях:
Случай 1: В чувствительной к регистру файловой системе:
- прерывается с ошибкой «test.TXT»существует
Случай 2: На файловой системе без учета регистра, когда фактический регистр существующего имени файла - "test.TXT":
- выдает предупреждение, что имя файлане изменяется
Случай 3: для файловой системы без учета регистра, когда фактический регистр существующего имени файла НЕ "test.TXT":
- переименовать файл в "test.TXT "
Поскольку этот сценарий должен быть переносимым, он не может полагаться на системные функции или утилиты.
Любые предложения приветствуются.