Hash Functions

defined expr†

Not specifically a hash function, but provides a convenient way to test whether a hash element has a defined value.

delete [ local ] elt
delete [ local ] @hash{key1, key2, ... }

elt must specify a hash element like $hash{key} or expr->{key}. Deletes the specified elements from the hash. With local, the deletion is local to the enclosing block. Returns aliases to the deleted values.

each %hash

In list context, returns a two-element list consisting of the key and an alias to the value for the next element of the hash. In scalar context, returns only the key. After all values have been returned, an empty list is returned. The next call to each after that will start iterating again. A call to keys or values will reset the iteration.

exists elt

elt must specify a hash element (see delete on the facing page). Checks whether the specified hash key exists.

keys %hash

In list context, returns a list of all the keys of the named hash. In scalar context, returns the number of elements of the hash. Can be assigned to, to pre-extend the hash.

scalar %hash

Returns true if there are keys in the hash.

values %hash

Returns a list consisting of aliases to all the values of the named hash.

each, keys, and values return the elements in an apparently random order but the order is the same for all of them.

each, keys, and values may take an array reference as the first argument. Experimental.

Get Perl Pocket Reference, 5th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.