If you don't specify the :out adverb, then the output of the program you
are running will be sent to standard output. Immediately when the program
executes. If you specify the :out adverb, output from the program will be
available for capture via the $proc.out method. A similar thing applies
for standard error.
A way to write the captured output to a file would be something like:
my $proc = run 'echo', 'foo bar baz', :out;
spurt("some-file-name", $proc.out.slurp(:close));
.slurp() will read all of the contents of the handle and return a string
(:close closes the file handle after reading everything).
spurt will write a string to a file.
hope this helps,
-Scott
On Wed, Jun 20, 2018 at 10:33 AM Theo van den Heuvel <[email protected]>
wrote:
> Hi all,
>
> trying to make sense of the documentation on run:
> https://docs.perl6.org/routine/run.
> In particular the last part. I don't understand the adverbs :out and :
> err there.
> Can I set it up so that the output is piped into a file directly? If so
> how would I write that?
>
> I know I could use shell for that, but I doubt that is necessary.
>
> [On first reading I found the doc confusing because it start with a
> hairy example. WHy would anyone wish to write to a file named
> '>foo.txt'? How can that be the first example?]
>
> Thanks,
>
> --
> Theo van den Heuvel
>