in reply to Re: Re: Re: GOLF challenge: destroy dup array elements
in thread GOLF challenge: destroy dup array elements

Most people are willing to forget about the existence of overloaded objects. The complaint is that keys returns everything in stringified form. So if elements of the hash included anonymous hashes (for instance), you would have a string indicating the hash, but you would no longer have a reference to the hash.

Using values does not protect you from overload collisions, but it does protect you from returning stringified versions of everything.

  • Comment on Re (tilly) 4: GOLF challenge: destroy dup array elements

Replies are listed 'Best First'.
Re: Re (tilly) 4: GOLF challenge: destroy dup array elements
by Sidhekin (Priest) on Sep 07, 2001 at 16:07 UTC

    Yes, overload can break this, and yes, I am willing to forget about that. However, my solution treats undef() and "" as the same item, returning only one of them if given both -- which is perhaps not too good ...

    Likewise, if the parameter list contains both a (well-behaved) ref and the stringified version of that ref, my sub will return only one of them. These problems are easily fixed, though the new sub loses some of those golf-like qualities -- it's not quite as neat:

    sub x{ values%{{map{(ref$_?1:defined$_?2:3).$_,$_}@_}} }

    The Sidhekin, wilfully ignoring overload

Re: Re (tilly) 4: GOLF challenge: destroy dup array elements
by blakem (Monsignor) on Sep 06, 2001 at 23:02 UTC
    OK, got it now... it was solving for a different (and more onerous) problem than I saw. However, the original question did say 'whatever elements' (his bolding, not mine)....., so perhaps a more formal definition of 'unique' and 'whatever' is needed.

    -Blake