> delete returns a list of key value pairs of what was deleted

Yes and no.

delete returns also key value pairs that are in the slice but didn't exist before, now with an undef value.

DB<1> @h{a..c}=1..3 DB<2> x delete %h{c,d} 0 'c' 1 3 2 'd' 3 undef DB<4> x delete @h{a,d} 0 1 1 undef DB<5>

This means you can't use delete to calculate the intersection of two sets of keys. (Well you can, but only with detours).

This is a missed opportunity with delete %h{LIST} we could have implemented sets via hashes.

> Not clear what a corresponding exists feature would do

Probably exactly the same thing like with a classic slice.

But exists SLICE in scalar context could return the number of existing elements. This could be equally used to calculate any or all .

Well this kind of would break the symmetry to delete SLICE with only returns the last element in the list. But this is a pretty useless feature anyway IMHO

Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery


In reply to Re^6: Why doesn't exist work with hash slices? by LanX
in thread Why doesn't exist work with hash slices? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.