I believe the canonical method is to use caller as friedo suggests, though I typically just do something like this (which, though I say "typically" isn't often :):
#!/usr/bin/perl
package Foo;
# ...
unless (caller) {
# ... execute this code if we're run stand-alone
} else {
# ... do whatever module initialization here.
}
__END__
You'll note that I didn't end my module with the traditional
1; because that's part of the module initialization. If the initialization succeeded it would return a true value. If you really didn't need to do any of that then leave off the
else and just put a
1; after the conditional.