Автор Тема: Помогите начинающему  (Прочитано 3518 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Medalist

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
Помогите начинающему
« : 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

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Помогите начинающему
« Ответ #1 : 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;

Циклы рулят!:))))
2B OR NOT 2B = FF

Оффлайн Medalist

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
Помогите начинающему
« Ответ #2 : 17 Марта 2003, 14:04:54 »
а где здесь проверка на повтор банера ???

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Помогите начинающему
« Ответ #3 : 17 Марта 2003, 14:38:00 »
Цитировать
а где здесь проверка на повтор банера ???

Имеющий глаза да увидит.:) Сравни с исходным, например.:)
Если у тебя нет времени, что бы изучить код, то у меня к сожалению нет времени давать по нему пояснения.
2B OR NOT 2B = FF

Оффлайн Medalist

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
Помогите начинающему
« Ответ #4 : 25 Марта 2003, 07:57:09 »
Скрипт не работает :( - выдает 500 ошибку !
Разве что если убрать ету строку
Цитировать
Chs:
delete $files[$random];

Но тогда банеры повторяются :(

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Помогите начинающему
« Ответ #5 : 25 Марта 2003, 09:14:37 »
Цитировать
Разве что если убрать ету строку
delete $files[$random];

Встречался я с таким на некоторых версиях никсов, когда delete не работает как надо.
Замени эту строчку на:
splice(@files,$random,1);
2B OR NOT 2B = FF

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Помогите начинающему
« Ответ #6 : 25 Марта 2003, 11:06:54 »
Chs delete на массив не работает на старых версиях Perl >= 5.3
The documentations is your friend

Оффлайн Medalist

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
Помогите начинающему
« Ответ #7 : 25 Марта 2003, 13:18:42 »
Всем БОЛЬШОЕ СПАИБО !!!
Все работает как и нада :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28