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
|