Words are usually delimited by punctuation, not only whitespace. Therefore, the following script only counts letters, delimited by non-letters.
#!/usr/bin/perl
use warnings;
use strict;
use open IO => ':utf8', ':std';
my ($words, $sentences);
while (<>) {
$words++ for m/\p{L}+/g;
$sentences++ for m/\./g;
}
print "$words $sentences\n";
Tested on the following text:
Огонь XXII Зимних олимпийских игр в Сочи во второй раз погас в понедельник в Москве, во время этапа эстафеты олимпийского огня. После нескольких безуспешных попыток снова его зажечь, факел был заменен, передает портал Sports.ru.
Казус произошел на Раушской набережной, недалеко от Кремля. Видно, как зрители приветствуют факелоносца, он машет в ответ, и через какое-то время факел гаснет.
Output:
59 5