in reply to Self-testing modules

first thought is that (while interesting) it probably isn't worth doing and would be better to stick with the stand ways of making a distribution/test suite, regardless of the simplicity (two methods and a class variable) of the module.

that being said, for the sake of discussion, my immediate second thought (before reading that you had it) was to check $0 and compare it to __FILE .. though i think you're right and it might be messy (though maybe not).. might be easy if combined with File::Spec to convert any relative path to absolute.

anyways, then another, and i think better, way pooped into my head:
package Foo; ... __END__ #!/usr/bin/perl use Foo; # run tests here.
This way you can use Foo; normally (or require, etc) from other scripts, but you can also do perl -x Foo.pm