Perhaps this is naive, but couldn't something like this be achieved in a manner similar to how I just implemented it in Ruby? Surely Perl will have similar capabilities to handle unknown methods.
class Hash def method_missing(method_name) str = method.id2name if str =~ /^\w+$/ then self[str] else super(method_name) end end end h = {"foo" => "bar"} h.foo # "bar" h.baz # nil h.length # 1 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.593 / Virus Database: 376 - Release Date: 20/02/2004