You could use the @ sigil for your files variable, too. Then you can
just "for @files". There's two ways to get that to work:

my Str @files = "Test", "Test 2";

or

my @files := Array[Str].new("Test", "Test 2");

Hope to help
  - Timo

On 13/02/2019 13:29, Mikkel wrote:
> Hello. (recurring noob-question here)
>
> I seem always seem to get myself confused with Arrays/Typed Arrays.
> Can I ask of you to explain why the 'for' loop does not work without
> .flat? It seems so counter intuitive....
>
> > my Array[Str] $files;
> (Array[Str])
>
> > $files.push("Test");
> [Test]
>
> > $files.push("Test 2");
> [Test Test 2]
>
> > for $files -> Str $f {.say}
> Type check failed in binding to parameter '$f'; expected Str but got
> Array[Str] (Array[Str].new("Test", "Test 2"))
>   in block <unit> at <unknown file> line 1
>
> Best regards
> Mikkel Birkedam

Reply via email to