in reply to Re: Re: Re: how do I line-wrap while copying to stdout?
in thread how do I line-wrap while copying to stdout?
Maybe I should benchmark that. This doesn't have the advantage of not affecting long strings and it does put multiple lines into one variable, but that might be OK.s/\G(.{1,80})/$1\n/gs; print;
Producesuse Benchmark qw(cmpthese); open(STDERR,">/dev/null"); cmpthese (10000, { match => sub { local $_ = "abcde " x 100; print STDERR "$1\n" while /\G(.{1,80})/gs +; }, swap => sub { local $_ = "abcde " x 100; s/\G(.{1,80})/$1\n/gs; print STDERR $_; }, });
So the swap will save you time (if you are nitpicky about speed).Benchmark: timing 10000 iterations of match, swap... match: 1 wallclock secs ( 1.26 usr + 0.01 sys = 1.27 CPU) @ 78 +74.02/s (n=10000) swap: 1 wallclock secs ( 1.01 usr + 0.01 sys = 1.02 CPU) @ 98 +03.92/s (n=10000) Rate match swap match 7874/s -- -20% swap 9804/s 25% --
|
|---|