Forum Webscript.Ru

Программирование => Perl => Тема начата: Medalist от 17 Марта 2003, 04:23:43

Название: Помогите начинающему
Отправлено: 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 банера рядом И ЧТОБЫ ОНИ НЕ ПОВТОРЯЛИСЬ !!!
Название: Помогите начинающему
Отправлено: Chs от 17 Марта 2003, 10:05:13

#!/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;

Циклы рулят!:))))
Название: Помогите начинающему
Отправлено: Medalist от 17 Марта 2003, 14:04:54
а где здесь проверка на повтор банера ???
Название: Помогите начинающему
Отправлено: Chs от 17 Марта 2003, 14:38:00
Цитировать
а где здесь проверка на повтор банера ???

Имеющий глаза да увидит.:) Сравни с исходным, например.:)
Если у тебя нет времени, что бы изучить код, то у меня к сожалению нет времени давать по нему пояснения.
Название: Помогите начинающему
Отправлено: Medalist от 25 Марта 2003, 07:57:09
Скрипт не работает :( - выдает 500 ошибку !
Разве что если убрать ету строку
Цитировать
Chs:
delete $files[$random];

Но тогда банеры повторяются :(
Название: Помогите начинающему
Отправлено: Chs от 25 Марта 2003, 09:14:37
Цитировать
Разве что если убрать ету строку
delete $files[$random];

Встречался я с таким на некоторых версиях никсов, когда delete не работает как надо.
Замени эту строчку на:
splice(@files,$random,1);
Название: Помогите начинающему
Отправлено: NeoNox от 25 Марта 2003, 11:06:54
Chs delete на массив не работает на старых версиях Perl >= 5.3
Название: Помогите начинающему
Отправлено: Medalist от 25 Марта 2003, 13:18:42
Всем БОЛЬШОЕ СПАИБО !!!
Все работает как и нада :)