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