Ovid <[EMAIL PROTECTED]> writes: > --- Piers Cawley <[EMAIL PROTECTED]> wrote: >> >> How about: >> >> my method SCALAR::attributes($self:) { $$self } >> my method HASH::attributes(%self:) { %self.kv } >> my method ARRAY::attributes(@self:) { [EMAIL PROTECTED] } >> >> method _attributes($attrs) { >> my @attributes = $attrs.attributes >> return @attributes[0] if @attributes == 1; >> ... >> } >> >> Assuming it's legal. > > Just saw this. Sorry for the late reply. > > At first that gave me the willies, then I noticed the "my" on the > front. I assume because of the "my" on there that this would affect > those data types only locally? That seems like it would be a nice > compromise. > > Is this legal syntax?
After some discussion on #perl6, we thought probably not (unless @Larry rules otherwise). However, my multi attributes( Scalar $scalar: ) { $$scalar } my multi attributes( Hash %hash: ) { %hash.kv } my multi attributes( Array @array: ) { [EMAIL PROTECTED] } definitely is legal (though it does rather suffer from the end-weight problem to my way of thinking). -- Piers Cawley <[EMAIL PROTECTED]> http://www.bofh.org.uk/