最近自作記法のモジュールを一から作り直していて、 Parse::RecDescentでパーサを書いてるんだけど、 そのときに文法の中で他のモジュールの関数とかを使う方法。
Parse::RecDescentの文法に書いたコードブロックは、 Parse::RecDescentの名前空間で実行されるので、パーサの中で、
package My::Parser;
use strict;
use warnings;
use Parse::RecDescent;
{
package Parse::RecDescent;
use Some::Module qw( foo bar );
}
見たいにしてやれば、Parse::RecDescentの文法の中で他のモジュールの関数が使えるようになる。
Parse::RecDescentはパーサをプリコンパイルできるらしいんだけど、 そっちの方は試してないのでこの方法で出来るかどうか不明。
最近やってることっていうと自作記法のモジュール作ってるぐらいなので、 本当にBlogに書くことがない。Plaggerもいじってないし。
更新するネタがないのはしばらく続きそうだ。
Comments
最新のコメント20件を表示しています