Re: Трава перл...фсем курить;-)
LaVei
lavei на mail.ru
Пт Сен 26 01:42:24 CDT 2003
Здраствуйте, LaVei <lavei на mail.ru> !
в Thu, 25 Sep 2003 16:30:07 +0500, Вы написали:
L> Как решить в одну строку это, я себе пока не представляю...
L> поэтому если участники не против то критерием будет Benchmark?;-)
L> Задача :
L> Написать программу на perl выводящую текст в виде
L> прямоугольника с
L> заданной шириной.
L> До заданной ширины строку следует дополнять пробелами,
L> начиная с левой её
L> части. Параметр, определяющий ширину результирующего
L> прямоугольника,
L> гарантированно больше, чем самое длинное слово,
L> встречающееся в тексте.
По предыдущей задаче:
в связи с тем что наиболее верно задачи была решена Грегом и Евгеном
я сделал бенчмарки ихних скриптов(предварительно исправив баг в коде Евгена с .$)
вот результаты:
Benchmark: timing 500000 iterations of Evgen, greg...
Evgen: 0 wallclock secs ( 1.14 usr + 0.00 sys = 1.14 CPU) @ 438596.49/s (n=500000)
greg: 2 wallclock secs ( 2.69 usr + 0.00 sys = 2.69 CPU) @ 185873.61/s (n=500000)
Rate greg Evgen
greg 185874/s -- -58%
Evgen 438596/s 136% --
вот изменения в коде Евгена:
while ( $text =~ s/^(.{1,$point}[ |.])(.*)$/$2/ )
{
my $str = $1;
$str=~ s/ $//;
Данил
Подробная информация о списке рассылки Samara-pm