Moon, John wrote:
>
> How can I use a "constant" as a hash key?
> 
> $ perl -e 'use constant CAT=>A;
>> $hash{CAT} = q{Bobby};
>> $hash{"CAT"} = q{Muffy};
>> $hash{'CAT'} = q{Fluffy};
>> $hash{qq{CAT}} = q{Tuffy};
>> print "$_ = $hash{$_}\n" foreach (keys %hash);'
> CAT = Tuffy
> $
> 
> Want...
> 
> A=Bobby

If you remember that constants are implemented as subroutines then all you have
to do is write the hash key as an expression that forces the subroutine to be
called. So

  use constant CAT => 'A';

is equivalent to

  sub CAT { 'A' }

and you can access the hash element with an expression like

  $hash{CAT()} = 'Daffy';
  $hash{CAT} = 'Duffy';
  $hash{CAT.''} = 'Dippy';
  $hash{0 || CAT} = 'Depot';

HTH,

Rob


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to