in reply to No arguments or filenames

You can take a look at Getopt::Long, Getopt::Simple, Getopt::*, etc.. or do something like, or some variant of:

unless (@ARGV) { print qq{I am helpful.}; }

Cheers,
KM