<snip>
The term "slurpy" did help a lot. :-) I am writing your explanation down for my records.Well Golly! $ p6 'sub printx(**@args){print(@args)}; printx("abc",1,"def\n");' abc 1 def $ p6 'sub printx(**@args){print @args, "\n"}; printx("abc",1,"def");' abc 1 def Question: $ p6 'sub printx(**@args){print(@args)}; printx("abc","xyz","def\n");' abc xyz def Are the spaces suppose to be there?
In each case you are using 'print @args', then `printx` adds on a "\n" either to the last item or the final string, which in each case results in exactly the same string. The way 'print' handles an array is to put a space between each item, which can be very confusing when dealing with items that are themselves strings with spaces.
For other "stringifications" of an array, try 'print @args.fmt("%s,")' if you want a comma, or 'print @args.perl'.
I find '.say for @args' is better because I get an item on each line. Also 'dd @args' is quite useful.
