replaced `date` with POSIX qw(strftime);
added log messages at each exit point added tests added reject_type option (defer -vs- deny) added named argument parsing