use Pod::Usage; ... GetOptions( ... ) or pod2usage(-verbose => 0); ... # Make sure at least one argument provided if (!@ARGV) { pod2usage(-verbose => 0, -message => "$0: argument required\n") }