fork(2) download
  1. use 5.010;
  2. use strict;
  3. use utf8;
  4. use Encode qw/encode decode/;
  5. use List::Util qw/shuffle/;
  6.  
  7. my $out = join " ", shuffle grep {
  8. length >= 3
  9. } map {
  10. s/^\s+|\s+$//g; lc
  11. } split /[\.\?,!]\s*|\n+/, decode("utf-8", join("", <>));
  12.  
  13. $out =~ s/(\w)(\ \w)/$1 . (rand > .80 ? (rand > .70 ? "." : ",") : "") . $2/ge;
  14. $out =~ s/(^|\.\s*)(.)/$1 . uc $2/gme;
  15. $out =~ s/\W*$/./;
  16.  
  17. say encode("utf-8", $out);
Success #stdin #stdout 0.04s 6116KB
stdin
Сегодня ЗКП проснулся раньше обычного, и оттого пребывал в приподнятом настроении. Он потянулся, надел свою помятую, но всё ещё любимую шапочку из алюминиевой фольги ​(как он полагал, она защищает от облучения психодеструктивными волнами, исходящими от генераторов в глубоких подвалах инквизиторского Министерства Правды) весело бурча под нос что-то про бомберовича, одел домашние тапочки со смешными помпончиками и длинный плащ на голое тело. Нашарив в кармане плаща немного треснувшие, но всё еще выглядящие реквизитом к низкопробному голливудскому мыльному кинцу черные очки, он натянул их на нос, довершил его экипировку рюкзак, судя по тому усилию, с каким ЗКП взваливал его на спину - с кирпичами.
stdout
Нашарив в кармане плаща немного треснувшие но всё ещё любимую. Шапочку из алюминиевой фольги ​(как он, полагал с каким зкп, взваливал его на. Спину - с кирпичами. Он потянулся судя по тому усилию исходящими от генераторов в глубоких подвалах инквизиторского министерства правды) весело бурча под, нос что-то про бомберовича, и оттого, пребывал в приподнятом, настроении, надел свою помятую, она защищает от облучения, психодеструктивными волнами, сегодня, зкп проснулся, раньше обычного но всё, еще выглядящие, реквизитом, к низкопробному, голливудскому мыльному кинцу черные очки он натянул их на нос довершил его экипировку рюкзак одел домашние тапочки со смешными помпончиками и длинный плащ на, голое тело.