in reply to Bug in Array::Compare? (no, really)

Yes, there's a bug. He's getting the caller's caller's package (caller(1)) instead of checking the caller's package (caller() or caller(0)).

It's a common mistake. The documentation is a misleading. One has to realize $package, $filename and $line are the caller's $package, $filename and $line, even when caller is provided an argument.

Update: Doh, he's not working with $package, $filename or $line. Warnings were forced onto a module that wasn't written to work with them and/or he didn't account for simple_compare being called from the top level.