>>>>>> "m" == moritz  <mor...@casella.faui2k3.org> writes:
>
>   m> S02 says:
>
>   m> "To get a Perlish representation of any object, use the .perl method.
> Like
>   m> the Data::Dumper module in Perl 5, the .perl method will put quotes
> around
>   m> strings, square brackets around list values,"
>
>   m> So according to this, Rakudo has it right.
>   m> But I think that a .perl()ification as ("blue", "light", "hayard",)
> would
>   m> make much more sense, because simple thing like
>
>   m> @a.push eval(@b.perl)
>
>   m> would then DWIM.
>
> for your def of DWIM. i can see wanting an anon array to be pushed onto
> @a building up a structure.

DWIM in the sense that "eval($stuff.perl)" should behave the same as
$stuff itself.

since @a.push(@b) flattens @b into @a, why should I expect something
different from @a.push(eval(@b.perl))?

> your example is too simple to really cover
> this as you could just push @b or a ref to @b (damn, i need to learn
> more basic p6 syntax! :).

If people want @a.push(\...@b) or @a.push([...@b]), they can just write that -
and if the want to use eval + perl, they can include the brackets or
backslash just as well.

> a more useful example would be serializing data trees. if you dump @b
> with .perl do you want the current dumper output of a anon array or your
> list of values? when serializing a tree, you must get the ref version so
> that is the common and default usage. your version isn't DWIMmy there at
> all.

Maybe we can construct something magic with slice context and captures
instead?

Cheers,
Moritz

Reply via email to