Forum Webscript.Ru
Программирование => Perl => Тема начата: Medalist от 17 Марта 2003, 04:23:43
-
Помогите дописать
скрипт который случайным образом выбирает *.txt файл и вставляет его куда нада
#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
$dir = \'.\';
opendir(DIR, $dir);
@files = grep {/.txt$/} readdir(DIR);
closedir(DIR);
$random = int rand @files;
open (FILE, $files[$random]);
while (){
print $_;
}
close (FILE);
exit;
нужно его переделать так чтобы он за один раз выводил 3 банера рядом И ЧТОБЫ ОНИ НЕ ПОВТОРЯЛИСЬ !!!
-
#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
$dir = \'.\';
opendir(DIR, $dir);
@files = grep {/.txt$/} readdir(DIR);
closedir(DIR);
foreach (1..3)
{
$random = int rand @files;
open (FILE, $files[$random]);
while ( ){
print $_;
}
close (FILE);
delete $files[$random];
}
exit;
Циклы рулят!:))))
-
а где здесь проверка на повтор банера ???
-
а где здесь проверка на повтор банера ???
Имеющий глаза да увидит.:) Сравни с исходным, например.:)
Если у тебя нет времени, что бы изучить код, то у меня к сожалению нет времени давать по нему пояснения.
-
Скрипт не работает :( - выдает 500 ошибку !
Разве что если убрать ету строку
Chs:
delete $files[$random];
Но тогда банеры повторяются :(
-
Разве что если убрать ету строку
delete $files[$random];
Встречался я с таким на некоторых версиях никсов, когда delete не работает как надо.
Замени эту строчку на:
splice(@files,$random,1);
-
Chs delete на массив не работает на старых версиях Perl >= 5.3
-
Всем БОЛЬШОЕ СПАИБО !!!
Все работает как и нада :)