story
I don't Perl much, but aren't those both scalars and @foo is an array variable. $foo[0] would be a scalar that is the first element of @foo, right?
The main questions I have when doing something in an unfamiliar language are now:
1. What is the syntax for X
2. Can it do Y
3. Is there a library/builtin for Z
For anything else, I've probably been there, done that, got the t-shirt.
I remember using some books to get a structured introduction when I started out many years ago though.
Nowadays I'll probably just open whatever existing code there is, go "ah, so it's like that", and hack away with the help of Google.
The stuff that takes actual learning tend to be major frameworks for me, not so much whatever programming language is used.
for @a { .say }
So this works in basically the same way: my $lambda = { .say }
@a.map( $lambda );
Or that the pointy block syntax … for @a -> $item { say $item }
… works on every keyword of the form `KEYWORD (CONDITION) {BLOCK}`. if $a.method() -> $result { say $result }
The pointy block is of course also a lambda. my $lambda = -> $result { say $result }
---Raku is a much more consistent language than beginners expect. The above is just one example of this.
Because it is so consistent; once you learn something in one place, you can use that knowledge everywhere in the language.
But first you have to realize that is even a possibility.
It would take a long time to come to that conclusion if you write Raku by copy-pasting code.
That is because very few languages are as strangely consistent as Raku.