You can't with that, because < ... > acts like single quotes; '@x' there is a string literal, not the list @x. If you use << ... >> then it act like double quotes, and will use the list instead.
On Fri, Oct 5, 2018 at 9:23 PM ToddAndMargo via perl6-users < perl6-users@perl.org> wrote: > On 10/5/18 6:09 PM, Brandon Allbery wrote: > > That's where the | comes in. If you say > > > > my @b = (1, |@a, 2); > > > > then you get (1, 'a', 'b', 'c', 2) like in Perl 5. But you can specify > > what gets flattened, so you can choose to flatten some arrays but not > > others if you need to for some reason: > > > > my @b = (1, |@b, 2, @b, 3); > > > > gives you (1, 'a', 'b', 'c', 2, ('a', 'b', 'c'), 3). This often matters > > in parameter lists, if you want one of the parameters to be the list > > itself instead of it being spread across multiple parameters. In Perl 5 > > you had to say \@b to pass a ref to the list instead, and the sub had to > > know it was getting a scalar containing an arrayref and needed to > > dereference it (if you don't know, don't ask; it's ugly). > > Am I correct in my assumption? > > A little off the question, but how do I address something > inside a nested array? > > In the following, how do I get at the "b" > > > $ p6 'my @x=<a b c>; my @y=<1 2 @x 3 4>; say @y; dd @y;' > > [1 2 @x 3 4] > > Array @y = [IntStr.new(1, "1"), IntStr.new(2, "2"), "\@x", IntStr.new(3, > "3"), IntStr.new(4, "4")] > > Also, how do I flatten @y above? > > Thank you for the help! > -T > -- brandon s allbery kf8nh allber...@gmail.com