Hi,

Luke Palmer wrote:
>     sub foo (+$a, *%overflow) {
>         say "%overflow{}";
>     }
> 
>     foo(:a(1), :b(2));                       # b        2
>     foo(:a(1), :overflow{ b => 2 });         # b        2

I'd think so, too.

>     foo(:a(1), :overflow{ b => 2 }, :c(3));  # ???

Error: Too many arguments passed to &foo?

Presuming that multiple *%slurpy_hashes are allowed, I'd say that...

    sub bar (+$a, *%overflow, *%real_overflow) {
        say "[%overflow{}] [%real_overflow{}]";
    }

    bar(:a(1), :overflow{ b => 2 });         # [b        2] []
    bar(:a(1), :overflow{ b => 2 }, :c(3));  # [b        2] [c        3]

But it seems to be cleaner to disallow multiply *%slurpies and just go
with the error.


--Ingo

-- 
Linux, the choice of a GNU | "The future is here. It's just not widely
generation on a dual AMD   | distributed yet."  -- William Gibson  
Athlon!                    | 

Reply via email to