Oh, good point! Yes, but works --
my @lines; $*OUT = $*OUT but role { method print($str) { @lines.push($str) } }; note "stderr is ok"; use Test; say "hello"; is @lines[0], "hello\n", 'stdout is wrapped' stderr is ok ok 1 - stdout is wrapped On Thu, Oct 25, 2018 at 9:39 PM Brandon Allbery <allber...@gmail.com> wrote: > I didn't phrase that quite right. > > pyanfar Z$ 6 'my @lines; $*OUT.^find_method("print").wrap: -> $self, $str > { @lines.push($str) }; use Test; note "hello"; is @lines[0], "hello\n", > "wrapped err too"' > ok 1 - wrapped err too > > This wraps it for every IO::Handle, not just for the IO::Handle in $*OUT. > You may need "but" for that? > > On Thu, Oct 25, 2018 at 9:34 PM Brian Duggan <bdugg...@gmail.com> wrote: > >> On Thursday, October 25, Brandon Allbery wrote: >> > You can't actually wrap print that way, can you? Or rather, if that >> works >> > it wouldn't be specific to $*ERR. >> >> Um, you definitely can, and yes it's not specific to $*ERR, e.g. >> >> my @lines; >> $*OUT.^find_method('print').wrap: -> $self, $str { @lines.push($str) } >> >> use Test; >> say "hello"; >> is @lines[0], "hello\n", 'said hello'; >> >> produces >> >> ok 1 - said hello >> >> Brian >> > > > -- > brandon s allbery kf8nh > allber...@gmail.com >