Forum Webscript.Ru
Программирование => Perl => Тема начата: ADm от 03 Октября 2003, 08:48:49
-
Подскажите пожалуйста почему не работает такой скрипт:
вызывается из ком. строки (win) так
type args.txt | perl my_script.pl
файл args.txt содержит имена файлов (одно имя на строку) для переименоввания. в файле 5 строк
скрипт ---------------------------------------------------------------------------
@all_files=;
for ($i=0; $i<=@all_files; $i++) {
$current_file_name=$all_files[$i];
$new_file_name=
get_new_file_name($current_file_name);
#В этой строке ошибка:
rename($current_file_name,$new_file_name) || die "$!";
}
конец------------------------------------------------------------------------------
Ошибка следующего содержания:
Permission denied at c:\\temp\\perl\\rna.pl line 31, line 5.
переименовываемые файлы никем не заняты и имееся полный набор разрешений на работу с ними.
Если убрать цикл и обрабатывать один файл все работает..
Очень прошу сильно не пинать, вопрос быть может простой но я уж и не знаю что делать...
Заранее спасибо!
-
for ($i=0; $i<=@all_files; $i++) {
for ($i=0; $i<=$#all_files; $i++) {
-
ondr:
for ($i=0; $i<=$#all_files; $i++) {
так конечно правильней Ж), но это тоже не работает.
-
вместо rename впиши print "$current_file_name,$new_file_name\\n";
и пришли результат
и еще листинг файла args.txt
а также листинг директории
-
вот результат:
c:\\temp\\perl\\test\\test1a.txt
, c:\\temp\\perl\\test\\test1a0102003.txt
c:\\temp\\perl\\test\\test2a.txt
, c:\\temp\\perl\\test\\test2a0102003.txt
c:\\temp\\perl\\test\\test3a.txt
, c:\\temp\\perl\\test\\test3a0102003.txt
c:\\temp\\perl\\test\\test4a.txt
, c:\\temp\\perl\\test\\test4a0102003.txt
c:\\temp\\perl\\test\\test5a.txt, c:\\temp\\perl\\test\\test5a0102003.txt
Вот args.txt:
c:\\temp\\perl\\test\\test1a.txt
c:\\temp\\perl\\test\\test2a.txt
c:\\temp\\perl\\test\\test3a.txt
c:\\temp\\perl\\test\\test4a.txt
c:\\temp\\perl\\test\\test5a.txt
Листинг директории:
Tom v ustrojstve C ne imeet metki.
Serijnyj nomer toma: 0816-73C4
Soderzhimoe papki C:\\Temp\\perl\\test
03.10.2003 08:17 .
03.10.2003 08:17 ..
03.10.2003 12:34 148 args.txt
17.09.2003 14:25 1 test1a.txt
17.09.2003 14:25 1 test2a.txt
17.09.2003 14:25 1 test3a.txt
17.09.2003 14:25 1 test4a.txt
17.09.2003 14:25 1 test5a.txt
6 fajlov 153 bajt
2 papok 2 365 960 192 bajt svobodno
-
После $current_file_name=$all_files[$i]; воткни chomp $current_file_name
-
теперь работает. БОЛШОЕ СПАСИБО!