Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Perl] Рандомный выбор строки из текста (https://forum.antichat.xyz/showthread.php?t=201288)

apofis 03.05.2010 11:07

[Perl] Рандомный выбор строки из текста
 
Не совсем пойму как рандомно взять строку из файла..
Есть текстовый файл text.txt с текстом:
слово1
слово2
слово3
слово4
...
словоN

Как отсюда взять одно случайное слово?

POS_troi 03.05.2010 11:30

Открываем файл
Определяем общее количество строк
Полученную цифру кидаем в рандом
Получаем случайное число не большее чем общее количество строк
Читаем строку из файла, под номером полученным рандомом


Или тебе нужно уже готовое решение? ;)

TheSoul 03.05.2010 12:18

open (FILE, '<text.txt');
chomp (@text = <FILE>);
close FILE;

$rand_text = $text[int(rand scalar @text)];

print $rand_text."\n";

apofis 03.05.2010 13:05

Цитата:

Сообщение от POS_troi
Открываем файл
Определяем общее количество строк
Полученную цифру кидаем в рандом
Получаем случайное число не большее чем общее количество строк
Читаем строку из файла, под номером полученным рандомом


Или тебе нужно уже готовое решение? ;)

Я хотел сделать именно так)
Но не знаю как прочитать определенную по номеру строку из файла.


TheSoul, спасибо большое) Это, наверное, самое верный вариант)

taxpayer 03.05.2010 16:26

Зачем всё подгружать в память?
В кукбуке есть очень красивый пример, как решается твоя проблема. туц

Код:

$rand_text = $text[int(rand scalar @text)];
в чём приоритет использования и одновременного неиспользования скобок? :) Кстати, наличие int необязательно ;)
Код:

$rand_text = $text[rand scalar @text];


Время: 13:32