[kansaipm] 暗黙のuse utf8
Yasushi Nakajima
nakajima at netstock.co.jp
Sun Oct 5 04:48:37 CDT 2003
ちょうど弾さんが顔を出して下さったので、弾さん向けの(^^)質問を一つ。
以下、Perl5.8(テストはWindows上の5.8.0でやってます)での話。
いま、PDFJのXMLフロントエンドであるXPDFJが、ようやくリリースに近づいて
きたのですが、その中で「明示的にuse utf8;していないコードをeval(正確に
はSafe::reval)するときに、暗黙にuse utf8;されることがある」という事態に
突き当たって悩んでいます。どうもutf8::SWASHNEWなんかを呼んでいるようです。
まだ、どんな時に起きるのか、短い再現コードにまで追いつめられていないの
ですが、実行するコードを少し変えただけで起きたり起きなかったりです。
安全のためにSafe環境はpermit_only(':default')にして、その中で実行した
いのですが、そうするとrequireがダメなので、上記の現象が起こると当然エラー
になります。実行したいコード自体は、変数を使った数式の評価ができればよく、
外部とやりとりする機能は殺しておきたいので、requireを許可したくはありま
せん。
質問は、いったいどんな条件の時に上記の現象が起こるのか、抑止する方法が
あるのかどうか、です。
書き忘れましたが、実行するコードはXMLデータ中に埋め込まれていて、
XML::Parserで読み込んでいるので、utf8になった状態でrevalに渡されています。
--
Yasushi Nakajima <nakajima at netstock.co.jp>
More information about the Kansai-pm
mailing list