in reply to Dual personality: Module and script

Here's a solution that works with require and use. Assuming it's saved in mod.pm
print "I'm a ".($INC{"mod.pm"} ? "module" : "script")."\n";
output is
fergal@linux:~> perl mod.pm
I'm a script
fergal@linux:~ perl -e 'require mod'
I'm a module