A less approximate version of Tie::Hash::Approx

Dave Cross dave at dave.org.uk
Wed Mar 12 15:15:46 GMT 2008


Quoting David Cantrell <david at cantrell.org.uk>:

> I need a module that will let me tie a hash so that if I try to FETCH a
> value for a key that exists, then it'll return the appropriate value,
> but will also let me fetch values for keys that match certain rules.
>
> eg so that ...
>
>     tie %hash, ....
>     $hash{Hobbes} = 'feline';
>     $hash{Lassie} = 'canine';
>     # set up some magic here
>
>     print "Hobbes is a $hash{Hobbes}\n";
>     print "Lassie is a $hash{Lassie}\n";
>     print "42 is an $hash{42}\n";        # 42 gets caught by some magic
>     print "3.5 is a $hash{3.5}\n";       # 3.5 matches some other magic
>     print "Skippy is a $hash{Skippy}\n"; # Skippy doesn't exist
>
> will print:
>
>     Hobbes is a feline
>     Lassie is a canine
>     42 is an integer
>     3.5 is a floating point number
>     Skippy is a Use of uninitialized value in concatenation
>
> without me having to define values for all real numbers, which would be
> the sort of task I might set a work-experience kid if I don't like their
> haircut.
>
> Can anyone point me at something on the CPAN, or am I going to have to
> write this myself?

Tie::RegexpHash perhaps.

   http://search.cpan.org/dist/Tie-RegexpHash/

Then you only need to write regexes to match all ints, all floats, etc.

Dave...




More information about the london.pm mailing list