O'Reilly logo

Perl Pocket Reference, 5th Edition by Johan Vromans

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required