Автор Тема: Просто?  (Прочитано 3215 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Andron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Просто?
« : 11 Августа 2003, 10:06:26 »
Совсем простая задача: посчитать слова в текстовом файле.
Результат поместить в другой файл.
Ну там_ например:

и - 125
в - 122
с - 100
...
перестройка - 1

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Просто?
« Ответ #1 : 11 Августа 2003, 10:55:51 »
open(F, "words.txt") or die;
$/ = undef;
my $words = ;

my %seen;

foreach (split(/[^\\w-]+/, $words)) {
next unless /\\w/i;
$seen{lc($_)}++;
}

foreach (sort keys %seen) {
print "$_ - $seen{$_}\\n";
}
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн Andron

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Просто?
« Ответ #2 : 11 Августа 2003, 15:57:46 »
Большое спаибо, Wyclef. Выглядит так, что работает правильно.
Вопрос на вскидку(для всех): Будет ли данный код правильно определять такие конструкции:
1. слова в скобках
2. и/или
3. текст не на английском со всякими äöüêßş и т.д.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Просто?
« Ответ #3 : 11 Августа 2003, 16:30:16 »
Andron
а самому попробовать религия не позволяет ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Просто?
« Ответ #4 : 11 Августа 2003, 16:38:00 »
Кстати есть модуль Text::ExtractWords:

  use Text::ExtractWords qw(words_count words_list);

  my %hash = ();
  words_count(\\%hash, "test test the words_count function");
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Просто?
« Ответ #5 : 11 Августа 2003, 16:42:57 »
Я не уверен, что мой пример вообще с русскими буквами работать будет... ;)))
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Просто?
« Ответ #6 : 11 Августа 2003, 16:45:49 »
Будет а как и почему - ищите в ФАК
The documentations is your friend

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Просто?
« Ответ #7 : 11 Августа 2003, 16:56:18 »
NeoNox
Ага, ты меня успокоил :)
use locale;
[off]Когда писал - был уверен, что будет, а потом почему-то засомневался. Правильно засомневался... ))[/off]
It\'s nice to be important, but it\'s more important to be nice!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28