Actually no I'm not “forgetting that spurt comes with an `:append` option”.
That is a slightly different use case.
It is where you are appending to an existing file once, and then never
touching it again.

(Or maybe you might be touching it again in a few hours.)

---

Given that this is what you wrote:

    unlink( $Leafpadrc );
    for @LeafpadrcNew -> $Line  { spurt( $Leafpadrc, $Line ~ "\n", :append
); }

I want to know how this is the hard way:

    given $Leafpadrc.IO.open(:w) {
        for @LeafpadrcNew -> $Line  { .put: $Line }
        .close;
    }

or

    given $Leafpadrc.IO.open(:w) -> $*OUT {
        for @LeafpadrcNew -> $Line  { put $Line }
        $*OUT.close;
    }

or

    given $Leafpadrc.IO.open(:w) -> $*OUT {
        .put for @LeafpadrcNew;
        $*OUT.close;
    }

or

    given $Leafpadrc.IO.open(:w, :!out-buffer) -> $*OUT {
        .put for @LeafpadrcNew;
    }



On Sat, Nov 14, 2020 at 1:07 PM ToddAndMargo via perl6-users <
perl6-us...@perl.org> wrote:

> On 2020-11-14 06:00, Brad Gilbert wrote:
> > The purpose of `spurt` is to:
> > 1. open a NEW file to write to
> > 2. print a single string
> > 3. close the file
> >
> > If you are calling `spurt` more than once on a given file, you are doing
> > it wrong.
>
> You are forgetting that spurt comes with an `:append` option.
>
> > If you give `spurt` an array, you are probably doing it wrong
> > unless you want the array turned into a single string first.
>
> Ya, doing things the hard way.
>

Reply via email to