>>300
スクリプトの、サブルーチンgeturllistの以下を変更してみました。
変更前 if ( $a[$i] =~ /$url/ and $a[$i] =~ /[0-9]$/ )
変更後 if ( $a[$i] =~ /$url/ and $a[$i] =~ /¥/[0-9]+$/ )

単ページで、エラー400が出なくなりました。
ゴミを拾っていたようです。