From perldoc -f each we read:
There is a single iterator for each hash, shared by all each, keys, and values
each
keys
values
each() can be more efficient if you are iterating through a tied hash, for example a database that contains millions of keys; that way you don't have to load all the keys in memory.