in reply to substitute using a hash

Are you trying invert the hash? From the Cookbook 5.8:
%reverse = reverse %iso8859;
%reverse then has values whose keys are of the original hash and vice versa.