in reply to [Perl 6] Problem with multi methods

Are you sure none(self) does what you want? I'm not sure it automatically flattens the array contents.

Replies are listed 'Best First'.
Re^2: [Perl 6] Problem with multi methods
by blazar (Canon) on Jul 23, 2007 at 17:55 UTC
    Are you sure none(self) does what you want? I'm not sure it automatically flattens the array contents.

    No, I'm not really sure: actually $Larry wrote unless any(self). I gathered my version would have been the same and actually it appears to work for one method. I reverted to $Larry's choice, but it doesn't seem to make a difference:

    pugs> my @array does role { ....> multi method insert ($x) { @.push($x) unless any(self) eqv $x } ....> multi method insert (@x) { @.insert($_) for @x } ....> } = 1..5; pugs> @array.insert($_) for 2..6; pugs> say @array 123456 Bool::True pugs> @array.insert(3..7); pugs> say @array 12345634567 Bool::True