SZ
use module;
sub args {}
sub mysub {}
#сюда
print param("a")+param("b")
Если а или б заданы неправильно, тогда нужно показать соответствующее сообщение и usage. А вот если они не заданы вообще, то надо просто показать usage, без обращения в param.
Т.е. типа "#сюда" надо заменить на
exit usage unless @ARGV;