#!/usr/bin/perl
# Idiom #277 Remove an element from a set
print "Implementation using native perl hash as a set\n \n " ;
use strict;
# use a hash to mimic a set
my %set ;
my @list = ( 'a' .. 'f' ) ;
$set { $_ } = 1 for @list ;
print "Contents of set:\n " ;
delete $set { 'c' } ; # delete specific key
print "\n After removing elements c:\n " ;
use v5. 20;
delete %set { 'b' , 'e' } ; # delete hash slice
print "\n After removing elements b and e:\n " ;
IyEvdXNyL2Jpbi9wZXJsCgojIElkaW9tICMyNzcgUmVtb3ZlIGFuIGVsZW1lbnQgZnJvbSBhIHNldAogCnByaW50ICJJbXBsZW1lbnRhdGlvbiB1c2luZyBuYXRpdmUgcGVybCBoYXNoIGFzIGEgc2V0XG5cbiI7Cgp1c2Ugc3RyaWN0OwoKIyB1c2UgYSBoYXNoIHRvIG1pbWljIGEgc2V0Cm15ICVzZXQ7CgpteSBAbGlzdCA9ICggJ2EnIC4uICdmJyApOwokc2V0eyRffSA9IDEgZm9yIEBsaXN0OwoKcHJpbnQgIkNvbnRlbnRzIG9mIHNldDpcbiI7CnByaW50IGpvaW4gJyAnLCBzb3J0IGtleXMgJXNldDsKCmRlbGV0ZSAkc2V0eydjJ307CSAgICAjIGRlbGV0ZSBzcGVjaWZpYyBrZXkKCnByaW50ICJcbkFmdGVyIHJlbW92aW5nIGVsZW1lbnRzIGM6XG4iOwpwcmludCBqb2luICcgJywgc29ydCBrZXlzICVzZXQ7Cgp1c2UgdjUuMjA7CmRlbGV0ZSAlc2V0eydiJywnZSd9OwkjIGRlbGV0ZSBoYXNoIHNsaWNlCgpwcmludCAiXG5BZnRlciByZW1vdmluZyBlbGVtZW50cyBiIGFuZCBlOlxuIjsKcHJpbnQgam9pbiAnICcsIHNvcnQga2V5cyAlc2V0Owo=