Автор: klem4 19.02.2008 15:58
Как говорит мой препод по никсам, это язык будущего Задачка собственно простейшая: ввести строку, подсчитать сколько в этой строке слов, длина которых не превышает 5. Решил попробовать сделать на Perl, интересно можно ли короче ?
#!/usr/bin/perl -w foreach (@words = split(/[.,;:!? ]+/, <>)) { chomp $_; $count += length($_) <= 5 ? 1 : 0; }; print "Count = $count\n"; exit;
После того что я видел, из того какие чудеса можно делать на этом языке, думаю что можно еще короче. Есть у кого мысли ?)
Автор: hiv 19.02.2008 20:16
Цитата(klem4 @ 19.02.2008 11:58)
Как говорит мой препод по никсам, это язык будущего
Странный препод... Вот у меня был препод по ОБЖ, так он говаривал так - "На каждый газ - свой противогаз!"
Цитата(klem4 @ 19.02.2008 11:58)
Есть у кого мысли ?)
Конечно есть ;)
Код
#!/usr/bin/perl print length( join('', map( length($_) <= 5 ? '1' : '' , split(/[\n\t.,;:!? ]+/, <>)) ) ) __END__
Автор: klem4 24.01.2009 15:31
Извиняюсь за некрофилию)) Зашел сегодня на форум и так как сейчас в основном пишу на perl, вспомнил про этот топик, так вот придумал такое решение:
Код
print s/\b\w{5,}\b/$&/g;
Автор: Altair 25.01.2009 0:39
\оффтоп\ Сторонний взгляд наблюдателя - отвратительный до тошноты язык.
Автор: klem4 25.01.2009 1:22
офф Да не, он на самом деле волшебный)))
Автор: xds 25.01.2009 16:08
Цитата(Altair @ 25.01.2009 3:39)
\оффтоп\ Сторонний взгляд наблюдателя - отвратительный до тошноты язык.
Для наблюдения - запросто. Для решения определенных задач - вполне ничего :-)
Автор: Altair 26.01.2009 1:46
Цитата
Для решения определенных задач - вполне ничего :-)
Это вполне возможно
Автор: renesko1 17.02.2009 2:25
print s/\b\w{5,}\b/$&/g; Похоже на э(и)зетерический язык