Beginner wrote: > > I am being a bit lazy here. I already had this hash defined (cut & > pasted from another file) and didn't want to re-type it. > > my %char = ( > 65 => 'a', > 66 => 'b', > 67 => 'c', > 68 => 'd', > 69 => 'e', > 70 => 'f', > 71 => 'g', > 72 => 'h', > 73 => 'i', > 74 => 'j', > 75 => 'k', > 76 => 'l', > 77 => 'm', > 78 => 'n', > 79 => 'o', > 80 => 'p', > 81 => 'q', > 82 => 'r', > 83 => 's', > 84 => 't', > 85 => 'u', > 86 => 'v', > 87 => 'w', > 88 => 'x', > 89 => 'y', > 90 => 'z', > ); > > > But now I need to find the key given the value. EG: What is the ASCII > value for 'a'? > > Am I being daft, or is the only way to push all the valuse into and > array and loop through it?
Hello The values can be calculated instead of being held in a hash. Your hash relates the character code for the upper case letters to their lower case equivalents. This subroutine will do the same thing for you: sub char { lc chr shift; } so that you can use char(65) instead of $char{65}. To do the reverse operation, use sub code { ord uc shift; } which will let you call code('a') giving 65. HTH, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>