Просмотр полной версии : [Perl] Рандомный выбор строки из текста
Не совсем пойму как рандомно взять строку из файла..
Есть текстовый файл text.txt с текстом:
слово1
слово2
слово3
слово4
...
словоN
Как отсюда взять одно случайное слово?
POS_troi
03.05.2010, 11:30
Открываем файл
Определяем общее количество строк
Полученную цифру кидаем в рандом
Получаем случайное число не большее чем общее количество строк
Читаем строку из файла, под номером полученным рандомом
Или тебе нужно уже готовое решение? ;)
open (FILE, '<text.txt');
chomp (@text = <FILE>);
close FILE;
$rand_text = $text[int(rand scalar @text)];
print $rand_text."\n";
Открываем файл
Определяем общее количество строк
Полученную цифру кидаем в рандом
Получаем случайное число не большее чем общее количество строк
Читаем строку из файла, под номером полученным рандомом
Или тебе нужно уже готовое решение? ;)
Я хотел сделать именно так)
Но не знаю как прочитать определенную по номеру строку из файла.
TheSoul, спасибо большое) Это, наверное, самое верный вариант)
taxpayer
03.05.2010, 16:26
Зачем всё подгружать в память?
В кукбуке есть очень красивый пример, как решается твоя проблема. туц (http://docstore.mik.ua/orelly/perl/cookbook/ch08_07.htm)
$rand_text = $text[int(rand scalar @text)];
в чём приоритет использования и одновременного неиспользования скобок? :) Кстати, наличие int необязательно ;)
$rand_text = $text[rand scalar @text];
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot