in reply to if (ref $value eq "ARRAY") {

Not an answer to how much testing, but on what tests are available...

You might want to check out the reftype() and blessed() subs from Scalar::Util (core module as of 5.8) They're designed to cleanly split the kludgy dual nature of ref() into two separate tests.

-Blake