in reply to Is this a way to Go Perl #1

Disclaimer go noob (haven't really done much with the concurrency stuff) and the question's a little vague but presuming your question is about the interleaving of the output at the end . . .

You've started an "anonymous goroutine" in Acme. This runs asynchronously in another thread in the go runtime, but your main thread of execution returns back to perl immediately. Your loop starts two more of these async threads and then, having no more code in perl, the perl runtime goes on to start the END block code running.

Unfortunately I'm not up enough to tell you the right way to synchronize this but I think the right thing would be to have a channel which things would flag that they've completed. You'd want something (go-side) to await on that channel (those channels?) to tell that the async bits had finished.

The cake is a lie.
The cake is a lie.
The cake is a lie.

Replies are listed 'Best First'.
Re^2: Is this a way to Go Perl #1
by karlgoethebier (Abbot) on Aug 03, 2021 at 16:01 UTC
    «…the right way to synchronize…»

    Channels. See the next chapter 🤪😎

    «The Crux of the Biscuit is the Apostrophe»