Hi,
Larry Wall wrote:
> On Fri, Sep 02, 2005 at 05:56:39PM +0200, Ingo Blechschmidt wrote:
> : multi foo ($a) {...}
> : multi foo ($a, $b) {...}
> :
> : say &foo.arity;
> : # die? warn and return 0? warn and return undef? return 1|2?
>
> How 'bout undef but 1..2? :-)
Interesting, but now you have to elaborate a bit. :)
I've thought there're two forms of the "but" operator:
my $foo = Foo.new but {
.bar($baz);
.grtz = "baka";
};
$obj but SomeRole;
# leaves $obj untouched and returns $obj with the SomeRole role
# incorporated, i.e. .does(SomeRole) is true then
0 but true; # is really
0 but bool::true # works, as bool::true is a role
0 but 42; # error: "Can't use 42 as a role"
Ok. But what about undef but 1..2? 1..2 isn't a role, right? So how can
&infix:<but> work with it?
--Ingo, who has probably misunderstood your ":-)" :)
--
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! |