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?

As above (in merlyn's code) but with a swap
s/\G(.{1,80})/$1\n/gs; print;
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.

Couldn't help but benchmark this thing...
use 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 $_; }, });
Produces
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% --
So the swap will save you time (if you are nitpicky about speed).