私はApache2::Cookie (つまり、mod_perl を使用した Apache2)を使用してCookie を解析しています。
my %cookies = Apache2::Cookie->fetch;
do_something($cookies{"cookie1"});
このコードは何年も問題なく本番環境で実行されています。特定の形式の Cookie が原因で例外がスローされることを知りましたExpected token not present
。問題の Cookie は、クライアント側の JavaScript によって生成されます。
document.cookie = "val=a,b"
Apache2::Cookie はコンマを好まないようです。
このエラーは でキャッチできますeval
が、Cookie の取得はコード内の多くの場所で行われます (そうです、除外することもできましたが、率直に言って、コードは非常に単純なのでその必要はありませんでした)。いずれにせよ、それは今そこにあるので、私が設定していない、必要のないこの Cookie の例外を追跡してキャッチする必要があります。
への数十回の呼び出しをリファクタリングするよりも、この例外を取り除く簡単な方法はありApache2::Cookie->fetch
ますか? を再定義するかApache2::Cookie::fetch
、グローバル フラグを設定しlibapreq
てこれを吐かないようにするか (私が見つけることができるものはありません)、または私が見逃している他の明るいアイデアを見つけます。