6 MODULE = Hash::Util PACKAGE = Hash::Util
10 all_keys(hash,keys,placeholder)
22 if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
23 croak("First argument to all_keys() must be an HASH reference");
24 if (!SvROK(keys) || SvTYPE(SvRV(keys)) != SVt_PVAV)
25 croak("Second argument to all_keys() must be an ARRAY reference");
26 if (!SvROK(placeholder) || SvTYPE(SvRV(placeholder)) != SVt_PVAV)
27 croak("Third argument to all_keys() must be an ARRAY reference");
30 av_k = (AV*)SvRV(keys);
31 av_p = (AV*)SvRV(placeholder);
36 (void)hv_iterinit(hv);
37 while((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))!= NULL) {
39 if (HeVAL(he) == &PL_sv_placeholder) {
58 if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
59 croak("First argument to hidden_keys() must be an HASH reference");
63 (void)hv_iterinit(hv);
64 while((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))!= NULL) {
66 if (HeVAL(he) == &PL_sv_placeholder) {
79 if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
80 croak("First argument to legal_keys() must be an HASH reference");
84 (void)hv_iterinit(hv);
85 while((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))!= NULL) {
91 hv_store(hvref, key, val)
100 if (!SvROK(hvref) || SvTYPE(SvRV(hvref)) != SVt_PVHV)
101 croak("First argument to alias_hv() must be a hash reference");
102 hv = (HV*)SvRV(hvref);
104 if (!hv_store_ent(hv, key, val, 0)) {