The perl version of that is
unless (caller) { ... }
If you put a block like that in the main part (ie, not in a sub, preferably right before the true value that all modules end with) of a .pm file you can do
perl Module.pm
And it will execute, but if its loaded via use Module; it won't.
I think thats what you are after anyway.
You _could_ use if ($0 eq __FILE__) { ... } I suppose, but the problem there is that __FILE__ probably will be fully qualified, but $0 might not be.
Having said all of that, module test code in perl doesnt normally go in such a block. Its more for quick debug/test code that you use during development. If you want to test your code properly you should use the test framework that comes with perl.
Update: switched the 'if' to an 'unless' as per happy-the-monks correction.
In reply to Re: Self Testing Modules
by demerphq
in thread Self Testing Modules
by Sheol
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |