Forum Webscript.Ru
Программирование => Perl => Тема начата: от 31 Декабря 2001, 13:29:42
-
как мне преименовать файл вместе с его расширением?
знаю что вопрос туповат но все же...
есть у меня файл $count.html а мне надо его в конце перлятника соответственно открыть наверно считать и переименовать в $count.shtml ....
-
rename("count.html", "count.shtml") or die("Can not rename file");
-
ничего не переименовывается... хоть бы что.. никакой реакции и ошибку тоже не выдает..
-
rename("count.html", "count.shtml") or print "Content-type: text/html\\n\\n Can not rename file, reason $!";
Скрипт должен быть в той же папке, что и count.html, если это не так, то в имени файла надо писать и путь к файлу.
-
rename("count.html", "count.shtml") or print "Content-type: text/html\\n\\n Can not rename file, reason $!";
Так тоже не верно:)Если переименуется, то сервер 500 выдаст, надо так:
print "Content-type: text/html\\n\\n";
rename("count.html", "count.shtml") or die("Не смог переименовать файл, причины: $!");
-
Так тоже не верноЕсли переименуется, то сервер 500 выдаст, надо так:
;) ага, ваша правда, только die в любом случае выведет это не в броузер, как того хочет чел-к.
А чтоб в броузер, то правильно написать так:
unless(rename("count.html", "count.shtml")){
print "Content-type: text/html\\n\\n Error: $!";
}
во, теперь окей.
забавно, что не обрабатывалась
rename("count.html", "count.shtml") or print "Content-type: text/html\\n\\n Can not rename file, reason $!";
интересно почему? наверное по тем же причинам, что и конструкция вида:
$i++ or print "Пусто, чувак!";
(а вот: ++$i or print "Привет!"; пройдет нормально)
Т.к. операция $i++ (в отличии от ++$i) происходит после действия, т.е. вначале проверили на истинность, а потом автоинкремент, и с ренеймом: вначале на истинность, а потом ренейм :) вот она perl философия!