トイレに行かせただけで動作未確認。

($k=$ARGV[3])=~s/%([\da-f]{2})/pack"H2",$1/egi;/\D/&&die for($a,$f,$t)=@ARGV;
print"Content-Type: text/",$a?"tab-separated-values\nContent-Disposition: atta"
."achment;filename=log$f".($t&&"-$t").($k&&"-$k").'.csv':plain,"\n\n";$f?do{/^.
...(..)(..)$/x&&$1*$2&&$1<13&&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,
<F>)for$f..$t||$f}:do{($d,$m,$y)=(localtime)[3,4,5];open F,sprintf">>%d%02d%02"
."d.txt",$y+1900,$m+1,$d;print F join("\t",''.localtime,@ENV{REQUEST_URI,
REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER}),"\n"}

ログの日付を scalar localtime に変更。