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