in reply to Re: Re:{4} how do I line-wrap while copying to stdout?
in thread how do I line-wrap while copying to stdout?

Oh well, you are right about that: the difference is too low to be noticable for normal use. I was just picking up merlyn's glove ;-}.

I just added the cmpthese stats when I saw your posting. Take a look at them. Some nitbits: I would call the swab 'insert'. But that can be done by substr as well... benchmarks coming up....

Rate inssub regmap regex fixreg substr inssub 13.7/s -- -95% -97% -97% -97% regmap 260/s 1800% -- -34% -35% -47% regex 395/s 2784% 52% -- -1% -20% fixreg 398/s 2809% 53% 1% -- -19% substr 491/s 3483% 89% 24% 23% --
That insert must be *really* inefficient :-)

Jeroen
"We are not alone"(FZ)

Let me add the new code:

use Benchmark; undef $/; open DATA, "/home/jeroen/texs/review/reviewnew.tex" or die $!; $str = <DATA>; open DUMP, ">/dev/null"; $result = timethese( -5, { 'regex' => sub { $a = $str; $b = ''; $b .= "$1\n" while $a=~/\G(.{1,80})/gs; print DUMP "$b"; }, 'regmap' => sub { $a = $str; $b = ''; print DUMP map "$_\n", $a=~/\G(.{1,80})/gs; }, 'fixreg'=> sub { $a = $str; $b = ''; $b .= "$1\n" while $a=~/\G(.{1,80})/gos; print DUMP "$b"; }, 'substr' => sub { $a = $str; $b=''; $b .= substr( $a, 0, 80, '')."\n" while length($a) >80; print DUMP "$b$a"; }, 'inssub' => sub { $a = $str; $idx = 0; substr( $a, $idx+=81, 0)="\n" while $idx< (length( $a) - 80 ); print DUMP "$a"; } }, 'none'); Benchmark::cmpthese($result);

Replies are listed 'Best First'.
Re: Re:{6} how do I line-wrap while copying to stdout?
by Rhandom (Curate) on Apr 20, 2001 at 18:26 UTC
    No worries. I've just had lots of people rant about how fast substr and index are (and they are). Which is true for simple cases (and some complex cases but you really don't want to be writing that kind of code do you?).