- 動機
- XML::AtomはXML::LibXMLが使えないときにXML::XPathを使ってパースしてくれるんだけど、XML::XPathの時の挙動を調べたい。
- やってみた
- XML::AtomのBEGINブロックでeval{ require XML::LibXML }してチェックしてる
- どこかでXML::LibXMLを殺せばいいんだけどどこに割り込めばいいのか分からない
- #soozyで教えてもらった。
- gfx: sub XML::LibXML::bootstrap{ die } require XML::Atom; でどうでしょう。
- おおおお!
- gfx: でもXML::LibXMLがXSLoader使うようになったらまた別の手を使わないとだめですよ。
- この場合うまくいくけど、汎用性がない、ということですね。
- lestrrat: @INCに sub { die if $_[0] eq ‘XML::LibXML’ } 的なものをしこんでおくのは?
- よくわからなかったので教えてもらった。
- http://gist.github.com/178271
- うまくいった!
- gfx: sub XML::LibXML::bootstrap{ die } require XML::Atom; でどうでしょう。
- ということで、下のスクリプトを動かすとXML::XPathで動いていることが分かる。
#soozyのみなさん、ありがとうございました!