Perl абзац генератор теряет пунктуацию - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно создать параграф (ы) случайного текста. В конце каждого предложения я хотел бы добавить пунктуацию, а в качестве предложения начальное слово должно быть написано заглавными буквами. У меня есть это до сих пор:

#!/usr/local/bin/perl -w -U
use English;

sub cWord {
  return "C";
}
sub lWord {
  return "l";
}

  my $paras = 3;
  my $limit = 15;
  my ($w, $wMax);
  my @words;

  my $pMax = 3 + rand $paras;
  for (my $p=0; $p<$pMax; $p++)
  {
    $wMax = 5 + rand $limit;
    for ($w=0; $w<=$wMax; $w++)
    {
      push @words, (!$w ? &cWord : &lWord) . ($w == $wMax ? '. ' : '');
    }
  }

  print join ' ', @words;

  print "\n";

  print @words;

Кажется, "."трейлер предложения обрезается?

2% perl ./f.pl
C l l l l l l l l l C l l l l l l l l l l C l l l l l l l l l l l C l l l l l l l l l l 
l l C l l l l l l l l l l l l l l l l l l C l l l l l l l l

ClllllllllCllllllllllClllllllllllCllllllllllllCllllllllllllllllllCllllllll2% 

1 Ответ

0 голосов
/ 31 октября 2019

вы забыли сделать преобразование типа

int(rand $limit);

это должно исправить вашу проблему. без этого ваш код никогда не будет выполняться для

$w == $wMax
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...